Python与MySQL、Redis、MongoDB的交互

Python环境:Anconada3 python3.6.4
MySQL:
—所需模块:pymysql
—安装方式:pip3 install pymysql

# coding=utf-8
import pymysql

"""
connect参数注意:
    port 必须是int,而非str,
    charset utf8 不能写成utf-8
"""
# 建立连接
con = pymysql.connect(host='localhost',
                      user='root',
                      password='12345',
                      db='test',
                      port=3306,
                      charset='utf8')
# 获取
cur = con.cursor()
# 命令 :增删查改的mysql语句
sql = 'select * from movie where mname="愚行录"'
# 执行
cur.execute(sql)
# 获取结果
content = cur.fetchall()
print(content)
# 提交事物:若不写,则对数据库的更改操作不能生效
con.commit()
# 关闭连接
con.close()
执行结果:

C:\Users\***\Anaconda3\python.exe D:/scrapyTest/test1.py
((147, '愚行录', '\n剧情介绍:\n            精英上班族一家被杀害引起轰动,在犯人不明的状况下过去了一年,周刊记者田中(妻夫木聪)为报道此事开始追查真相,满岛光饰演田中的妹妹。影片描绘了人际关系中隐藏的羡慕、嫉妒和策略,是一部检验人性极限的群像推理作品。 \n            ', 'http://t.dyxz.la/upload/img/201709/poster_20170916_1368796_b.jpg!list', 'thunder://QUFodHRwOi8vZGwxNDMuODBzLmltOjkyMC8xNzA5L+aEmuihjOW9lS/mhJrooYzlvZUubXA0Wlo='),)

Process finished with exit code 0

Redis
—安装模块:redis
—安装方式:pip3 install redis

# coding=utf-8
import redis

# 连接方式两种:普通连接,连接池连接
# Redis连接参数:decode_response=true将默认取出结果bytes改为str
# 普通连接:
c = redis.Redis(host='localhost', port=6379, decode_responses=True)
# 列表操作
# 往列表名为lkey1的列表,添加元素value1, value2,若列表不存在则创建
c.lpush('lkey1', 'value1', 'value2')
c.lpush('test1', *[1, 2, 3])
# 从列表名为lkey1的列表,取出最后一个元素,列表为空时返回None
print(c.lpop('lkey'))
# 返回列表lkey1 的长度
print(c.llen('lkey'))
执行效果:

C:\Users\XieWeidong\Anaconda3\python.exe D:/scrapyTest/RedisOpreation.py
lkey1: value2
test1: 3

Process finished with exit code 0
# 连接池连接
# 只多了第一步,建立连接池
p = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
# 不必输入主机端口,直接指明连接池
pc = redis.Redis(connection_pool=p)
pc.lpush('lkey2', 'value1', 'value2')
pc.lpush('test2', *[4, 2, 3])
print(pc.lpop('lkey'))
print(pc.llen('lkey'))
执行效果:

C:\Users\XieWeidong\Anaconda3\python.exe D:/scrapyTest/RedisOpreation.py
lkey2: value2
test2: 3

Process finished with exit code 0

MongoDB
—安装模块:pymongo
—安装方式:pip3 install pymongo

# coding=utf-8
import pymongo
from bson.objectid import ObjectId

# 创建连接
con = pymongo.MongoClient()
# pymongo操作MongoDB跟在shell中操作有些相似
# content1 = con.数据库名.表名.命令
# 查询一条
content1 = con.car2.info1.find_one()
print('content1:', content1)

# 如果pymongo的版本号小于2.2,使用下面的语句导入ObjectId
# from pymongo.objectid import ObjectId
# 如果pymongo的版本号大于2.2,则使用下面的语句
# from bson.objectid import ObjectId

# 查询所有_id 小于 ObjectId("5b6fe03520d7d82f40c8cfe3") 的对象的数量,返回生成器对象

content2_count = con.car2.info1.find({'_id': {'$lt': ObjectId("5b6fe03520d7d82f40c8cfe3")}}).count()

print('content2_count:', content2_count)
执行效果:

C:\Users\XieWeidong\Anaconda3\python.exe D:/scrapyTest/test.py
content1: {'_id': ObjectId('5b6fe02d20d7d82f40c8cfe1'), 'title': '想买一辆SUV?', 'question': '你好,我想20万左右买一辆SUV,比如途观L,昂科威,科迪亚克,等,从舒适度,性价比上麻烦你给建议一下,。谢谢', 'level': ['3'], 'contents_list': '二十万左右,可以选择的车型是比较多的,但是你说的途观L,昂科威,科迪亚克,这几款也是上路,肯定得二十万以上了。个人感觉像一些日系的SUV的价格相对来说还是不错的选择,你可以看一下三菱额欧蓝德、马自达的CX-5、或者是日产的一些车型比如逍客、缤智等等。。图1', 'imgs': []}
content2_count: 15

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/fxjdxwd/article/details/82227649
今日推荐