首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Python 實戰操作 MySQL 資料庫:從連線到 ORM 完整指南

     編輯:MySQL 綜合教學

前言

Python 操作 MySQL 是後端開發的核心技能。本文將從底層的 MySQLdb 驅動程式講起,涵蓋連線、CRUD 操作、參數化查詢、事務控制,最後介紹 Django ORM 的優雅用法,幫助你建立扎實的資料庫操作基礎。

一、環境準備

安裝 Python 專用的 MySQL 驅動(舊版為 MySQL-python,現代建議使用 mysqlclient 或 PyMySQL):

pip install mysqlclient

二、MySQLdb 核心操作流程

1. 建立連線與游標

import MySQLdb

conn = MySQLdb.connect(
    host="localhost",
    user="root",
    passwd="your_password",
    db="mydatabase",
    charset="utf8"
)
cursor = conn.cursor()

2. 核心方法分類

類別方法說明
執行命令execute(sql, params)執行單條 SQL,回傳影響行數
executemany(sql, seq_params)批次執行同一條 SQL,參數為序列
callproc(procname, args)呼叫預存程序
nextset()移動至下一個結果集
接收結果fetchone()取得單筆記錄
fetchmany(size)取得指定筆數記錄
fetchall()取得所有記錄
scroll(value, mode)移動游標位置

3. 實戰範例:參數化查詢與批次寫入

# 單筆插入(佔位符永遠用 %s)
sql = "INSERT INTO cdinfo (title, singer, img, url, alpha) VALUES (%s, %s, %s, %s, %s)"
param = (title, singer, imgurl, url, alpha)
cursor.execute(sql, param)

# 批次插入
params = [
    (title1, singer1, img1, url1, alpha1),
    (title2, singer2, img2, url2, alpha2)
]
cursor.executemany(sql, params)

# 查詢
cursor.execute("SELECT * FROM cdinfo")
rows = cursor.fetchall()
print(rows[0][3])  # 取得第一筆第 4 欄資料

# 關鍵:必須 commit 才會真正寫入資料庫
conn.commit()

4. 關閉資源

cursor.close()
conn.close()

三、Django ORM 簡介

Django 內建強大的 ORM 系統,在 settings.py 設定資料庫連線後,即可透過 Model 類別進行物件導向操作:

# models.py
class CdInfo(models.Model):
    title = models.CharField(max_length=100)
    singer = models.CharField(max_length=50)
    # ...

# views.py 或 shell
CdInfo.objects.create(title="New Album", singer="Artist")
albums = CdInfo.objects.filter(singer="Artist")
for a in albums:
    print(a.title)

ORM 自動處理 SQL 拼接、防注入、連線池等細節,大幅提升開發效率與安全性。

總結

掌握 MySQLdb 底層操作有助於理解資料庫交互原理,實際專案中強烈建議使用 Django ORM 或 SQLAlchemy 等高階工具,專注於業務邏輯而非 SQL 細節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved