使用python操作Mysql

Python DB API規范
image.png

這個規范給我們提供來數據庫對象連接,對象交互和異常處理的方式,為各種DBMS提供來統一的訪問接口。

使用Python對DBMS進行操作

需要經過下面的步驟:

  1. 引入API模塊;
  2. 與數據庫建立連接;
  3. 執行SQL語句;
  4. 關閉數據庫連接;
# -*- coding: UTF-8 -*-
import mysql.connector
# 打開數據庫連接
db = mysql.connector.connect(
       host="localhost",
       user="root",
       passwd="XXX", # 寫上你的數據庫密碼
       database='wucai', 
       auth_plugin='mysql_native_password'
)
# 獲取操作游標 
cursor = db.cursor()
# 執行SQL語句
cursor.execute("SELECT VERSION()")
# 獲取一條數據
data = cursor.fetchone()
print("MySQL版本: %s " % data)
# 關閉游標&數據庫連接
cursor.close()
db.close()

對數據庫的當前連接操作:

  • 通過指定host,user,passwd和port等參數來創建數據庫連接;
  • 使用db.close()關閉數據庫連接;
  • 使用db.cursor()創建游標,操作數據庫中的數據;
  • 使用db.begin()開啟事務;
  • 使用db.commit()和db.rollback(),對事務進行提交和回滾;

通過cursor = db.cursor()創建游標后,可以對數據庫中的數據進行操作:

  • 使用cursor.execute(query_sql),執行數據庫查詢;
  • 使用cursor.fetchone(),讀取數據集中的一條數據;
  • 使用cursor.fetchall(),取出數據集中的所有行,返回一個元組類型數據;
  • 使用cursor.fetchmany(),取出數據集中的多條數據,返回一個元組類型數據;
  • 使用cursor.rowcount,返回查詢結果集中的行數。如果沒有查詢到數據或者還沒有查詢,結果為-1;
  • 使用cursor.close(),關閉游標
import traceback
try:
sql = "INSERT INTO player (team_id, player_name, height) VALUES (%s, %s, %s)"
val = (1003, "約翰-科林斯", 2.08)
cursor.execute(sql, val)
db.commit()
print(cursor.rowcount, "記錄插入成功。")
except Exception as e:
# 打印異常信息
traceback.print_exc()
# 回滾  
db.rollback()
finally:
# 關閉數據庫連接
db.close()
ORM框架

ORM的英文是Object Relation Mapping,中文叫做對象關系映射。采用ORM,可以從數據庫的設計層面轉化成面向對象的思維。


image.png

三種主流的ORM框架:

  • Django,它是Python的WEB應用開發框架。Django采用了MTV的框架模式,包括Model(模型),View(視圖),Template(模版)。Model模型只是Django的一部分,可以通過它來實現數據庫的增刪改查;
  • SQLALchemy,它提供了SQL工具包以及ORM工具,支持ORM和原生SQL兩種方式;
  • peewee,一個輕量型的ORM框架,簡單易用。peewee采用了Model類,Field實例和Model實例來與數據庫建立映射關系。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容