博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 与Mysql ,Mongodb以及Redis的交互
阅读量:5279 次
发布时间:2019-06-14

本文共 3600 字,大约阅读时间需要 12 分钟。

1. Python 与Mysql的交互

首先python 与 mysql的交互要依赖于第三方模块pymysql,所有先安装pymysql 

pip   install   pymysql

然后实现用python 链接mysql数据库

import  pymysql#链接数据库db=pymysql.connect(host="127.0.0.1",port=3306,user="root",password="123",db="test")#创建光标cur=db.cursor()sql='select *  from  test1'#执行sql语句cur.excute(sql)#当sql语句不是查询时需要执行下面的提交命令#db.commit()cur。close()db.close() #在此sql语句就不在一一列举了

2 Python  与Mongodb的交互

同样python 与mongodb的交互要依赖于第三方模块pymongo,所有先安装pymongo

pip   install  pymongo

然后实现用python 链接mongodbl数据库

from pymongo import MongoClient# 连接MongoDB数据库db = MongoClient('192.168.52.128', 27017)# 数据库的添加my_db = db.my_db# 创建文件my_info = my_db.my_info# 向文件中插入数据# my_info.insert([{'name': '曙光', 'age': 30, 'sex': '男'},{'name': '冰封', 'age': 15, 'sex': '男'},{'name': '哈哈', 'age': 18, 'sex': '男'},{'name': '嗝', 'age': 20, 'sex': '男'},{'name': '李坤', 'age': 28, 'sex': '女'}])'''insert():可以实现单条或多条数据的插入save():只能完成单条数据的插入,并且数据必须是字典结构'''# 查询数据res = my_info.find({
'name': 'xiaocaicai'})for item in res:print(item)更新数据#multi:布尔类型设置数据更新时是否一次性更新多条数据,默认为False# upsert:设置数据更新时如果数据不存在,是否将本次数据添加到文件中,默认为Falsemy_info.update({
'name': 'xiaocai'}, {
'$set': {
'age': 20, 'sex': '女'}}, multi=True, upsert=True)# 删除数据delete_one():删除数据库中一条数据delete_many():一次性删除多条数据my_info.delete_one({
'name': 'xiaocai'}) my_info.delete_many({
'name': 'xiaocai',{
'name': 'xixx'})# mongodb查询'''> : $gt< : $lt>= : $gte<= : $lte'''# 查询年龄在[15,25]之间的数据res = my_info.find({
'age': {
'$gte': 15, '$lte': 25}})for item in res:print(item)# 查询年龄在15岁以下,或25岁以上的人员res = my_info.find({
'$or': [{
'age': {
'$lte': 15}}, {
'age': {
'$gte': 25}}]})for item in res: print(item)res = my_info.find({
'$or': [{
'age': {
'$lte': 15}}, {
'age': {
'$gte': 25}}], 'name': 'xiaocaicai'})for item in res:print(item)# $or: 或者,该指令通常作为字典的键,其对应的值是一个列表结构,列表中的每一个元素之间是并列的关系# 在字典中所有的键值对之间是一种并且的关系res = my_info.find({
'$or': [{
'age': {
'$gte': 10, '$lte': 15}}, {
'age': {
'$gte': 25, '$lte': 30}}], 'name': 'xiaocaicai'})# # sort():将查找之后的结果按照指定的字段进行排序,1代表升序,-1代表降序# # skip(n):跳过n条数据之后再提取数据# # limit(m):限定从某一个位置开始,只提取m条数据res = res.sort('age', -1).skip(1).limit(2)for item in res: print(item)# $in:提取在指定内容中的数据res = my_info.find({
'age': {
'$in': (10, 20, 30, 25)}}) for item in res: print(item)obj = {
'name': '冰哥', 'age': '18', 'sex': '女', 'photo': ['img/big.jpg', 'img/small.jpg', 'img/normal.jpg'], 'score': [20, 30, 50, 12]}my_info.insert(obj)# all:查找对应的数据库中的某一条数据是否包含all中所有的值,如果满足则返回结果,如果不满足则不返回数据res = my_info.find({
'score': {
'$all': [20, 30]}})for item in res: print(item)# $push:向已有数据源中按照字段进行数据的添加 my_info.update({
'name': '冰哥'}, {
'$push': {
'score': [100, 150]}})# $pop:将数据库中对应数据的某一个字段数据按照指定方式进行删除,-1:从列表的起始位置开始删除,1:从列表的最后位置开始删除my_info.update({
'name': '冰哥'}, {
'$pop': {
'score': -1}})# $pull:将对应数据中指定的数据分布进行删除(按值删除)my_info.update({
'name': '冰哥'}, {
'$pull': {
'score': [100, 150]}})# 多路查询 res = my_info.find({
'score.0': 50})for item in res: print(item)

 3 Python 与Redis的交互

同样先安装第三方插件

pip  install   redis

链接数据库

import redis#decode_responses=True ,表示写入的键值对中value为str类型,不加时为 字节类型pool=redis.ConnectionPool(host="localhost",port=6379,decode_responses=True)r=redis.Redis(connection_pool=pool)#设置一个键值对r.set("name",'zhangsan') #将数据保存到dump。db文件中 r.save() #取出某个键对应的value值r.get('name')#设置多个键值对r.mset({
"name1":'zhangsan', "name2":'lisi'})#列出数据库中所有的键r.keys()# delete :删除给定的一个或多个keyr.delete('name1','name2')print(r.keys())# #清空数据库res=r.flushdb()#获取数据库的大小r.dbsize()

 

转载于:https://www.cnblogs.com/beifangls/p/9853404.html

你可能感兴趣的文章
生成随机数的模板
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>
hdu 3938 并查集
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>