python操作數據庫

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數據庫
同時也可以多去看看官方文檔,上面介紹的非常詳細且十分易懂。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章