pymysql
demo代码样例,暂时先写查询的,增删改后续再添加;
通用部分
无论是增删改查,都需要先建立数据库连接,创建游标
import pymysql
#建立一个mysql的conn,返回Connetion对象
conn = pymysql.connect(
host = 'localhost',
user = 'root',
passwd = 'p@ssWD',
port = '3306',
db = 'test'
)
#新建一个游标,默认返还元组,可选DictCursor让查询结果返还dict
#为了方便后续get,我更喜欢查询结果返还字典
cursor = conn.cursor(pymysql.cursors.DictCursor)
## 最后一定要记得释放资源
"""
TODO 对数据库的各种操作
"""
cursor.close()
conn.close()
查
由于查出来的数据是从数据库load到内存中,不用更改数据库数据,所以不需要commit。
##使用游标查询数据
sql = 'select * from user'
query_result = cursor.execute(sql)
#query_result是int类型的,只显示查询了多少条,没查到结果的话query_result=0,实际查询结果数据在游标上
#查看查询结果,可以全部查看fetchall()(返回dict组成的list),可以查看一条fetchone()(返回一个字典),还可以查看n条,fetchmany(n)(返回n个字典组成的list)
if query_result:
for single_record in cursor.fetchall():
print(single_record['name'],'->',single_record['score']
增
增加的数据要修改数据库,所以需要commit(python cursor 还有一个很好用的东西,新增完了之后可以当场获得自增id,而不用再写select last_insert_id() 这种查询语句获得)
sql = 'insert into user(name,age) values (%s,%s)'
data = [
('Lucy',24),
('June',20),
('Jay',34)
]
cursor.executemany(sql,data)
conn.commit()
# 获得新增记录的自增id
last_id=cursor.lastrowid