python操作数据库都是通过数据库驱动取操作的。现在主要有两张,一种是通过pymysql,还有一种是通过sqlalchemy。在这里可能还会有人说还有MySQLdb模块也可以操作。确实是的,但是MySQLdb对python3已经不支持了,所以这里我就不讨论了。
第一种pymysql:
pymysql帮助文档
这里我就直接抄袭帮助文档了,毕竟官放的示例非常棒
import pymysql.cursors
# 链接数据库
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# 插入一条数据
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
# 将数据发送并保存到数据库(提交修改)
connection.commit()
with connection.cursor() as cursor:
# 查询一条数据
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('webmaster@python.org',))
result = cursor.fetchone()
print(result)
finally:
# 关闭链接
connection.close()
官网这里例子不得不说十分简单,我们常用的所有的pymysql操作数据库的指令也基本是由这上面两句变化过来的(前提是你要懂sql指令)。上面的例子也就四个部分,第一是链接数据库(connect),然后获取游标(connection.cursor()),再通过游标执行命令(cursor.execute())与通过游标获取数据(cursor.fetchone())。当然其中sql语句拼接可选可不选,但是如果不选的话可拓展性与安全性都不怎么好(通过拼接可防注入)。最后则是断开数据库链接。
第二种则是通过SQLAlchemy:
sqlalchemy官方文档
sqlalchemy是一个ORM(Object Relational Mapping),十分符合面向对象编程。同时使用起来十分方便,就是学习起来会比pymysql费劲的多。关于它的实例可以看这个网址:Python中使用SQLAlchemy连接Mysql数据库
同时也可以多去看看官方文档,上面介绍的非常详细且十分易懂。