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, ('[email protected]', 'very-secret'))
# 將數據發送並保存到數據庫(提交修改)
connection.commit()
with connection.cursor() as cursor:
# 查詢一條數據
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('[email protected]',))
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數據庫
同時也可以多去看看官方文檔,上面介紹的非常詳細且十分易懂。