ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
# 数据库 [TOC] ## [mysql](http://www.runoob.com/python3/python3-mysql.html) ### 使用 1. 如果MySQL的版本≥5.5.3,可以把编码设置为utf8mb4。utf8mb4和utf8完全兼容,但它支持最新的Unicode标准,可以显示emoji字符。 2. 执行INSERT等增删改操作后要调用commit()提交事务; 3. MySQL的SQL占位符是%s ```python import pymysql # 导入MySQL驱动: import mysql.connector # 链接数据库 获取操作游标 def mysql_db(): # 链接数据库 获取操作游标 config = { 'host': MYSQL_HOST, 'port': MYSQL_PORT, 'user': MYSQL_USER, 'passwd': MYSQL_PASSWD, 'database' : 'spider', 'charset':'utf8mb4', 'cursorclass': pymysql.cursors.DictCursor } conn = pymysql.connect(**config) cursor = conn.cursor() return cursor # 注意MySQL的占位符统一是%s: cursor = conn.cursor() cursor.execute('create table user (id varchar(20) primary key, name varchar(20))') # 插入数据 for x in range(3): cursor.execute("insert into user (id, name) values (%s, %s)", [str(x), "TaoYuan"+str(x)]) print(cursor.rowcount) # 只读属性,返回执行execute()方法后影响的行数 # 删除 cursor.execute("delete from user where id < %s",[10]) # 改 cursor.execute("update user set name='zxg' WHERE id = %s",[11]) # 查 cursor.execute("select * from user limit 10") res = cursor.fetchall() print(res) # [('11', 'zxg'), ('12', 'TaoYuan12')] # 提交事务 conn.commit() cursor.close() ``` ## [redis](https://www.jianshu.com/p/2639549bedc8) ### 安装库 redis,redis-py ### 说明 ```python # 连接redis,加上decode_responses=True,写入的键值对中的value为str类型,不加这个参数写入的则为字节类型。 r = redis.Redis(host='localhost', port=6379, decode_responses=True, db=1) # redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。 # 可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池 pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True) ``` ## mongodb http://www.runoob.com/python3/python-mongodb.html https://www.cnblogs.com/melonjiang/p/6536876.html ### 说明 ```python import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') ```