首頁 > 軟體

詳解Python如何利用pymysql封裝專案通用的連線和查詢

2022-07-22 22:01:38

前言

一個專案通常都需要有資料庫,而對於python這門語言,除了一些框架自帶orm或者擴充套件的orm(像django自帶orm,flask則需要擴充套件的orm),使用orm必然有他的好處,但毫無疑問你要花時間學習這個orm,那麼接下來阿牛帶你們用pymysql簡單分裝一個通用的連線,關閉和查詢!

pymysql 介紹與安裝

PyMySQL 是在 Python3.x 版本中用於連線 MySQL 伺服器的一個庫,Python2中則使用mysqldb。

在終端使用以下指令安裝:

pip3 install PyMySQL

pymysql 的使用

import  pymysql

# 開啟資料庫連線,password為你的資料庫密碼,db是資料庫名
db = pymysql.connect(host="127.0.0.1",
                     user="root",
                     password=" ",
                     db=" ",
                     charset="utf8")

# 使用 cursor() 方法建立一個遊標物件
cursor = db.cursor()

# 使用 execute()  方法執行 SQL 查詢 
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法獲取單條資料.
data = cursor.fetchone()

print("Database version : %s " % data)

#關閉資料庫連線
db.close()

password為你的資料庫密碼,db是資料庫名,操作前請先建立好你的mysql資料庫。

如圖,我連線成功並且獲取到了我資料庫的版本!

方法execute執行我們的sql語句。

在獲取執行的結果時,可以指定獲取的結果的條數,可以使用的選項如下:

fetchone()         # 取得檢索結果的一條資料

fetchmany(n)       # 取得檢索結果的n條資料

fetchall()         # 取得檢索結果的所有資料

需要注意的是,與讀取檔案時的指標類似,如果在同一段程式碼中,先使用fetchone()獲取檢索結果的第一條資料,然後再使用fetchmany(2)的話,指標會在檢索結果的當前位置向後讀取執行結果,而不會從頭開始重新讀取檢索的結果。

獲取到的結果是元組。,如下圖:

封裝專案通用的連線和查詢

請自行寫入密碼和資料庫

import pymysql

# 建立連線
#return: 連線,遊標
def get_conn():

    # 建立連線
    conn = pymysql.connect(host="127.0.0.1",
                           user="root",
                           password="",
                           db="",
                           charset="utf8")
    # 建立遊標
    cursor = conn.cursor()# 執行完畢返回的結果集預設以元組顯示
    return conn, cursor


# 關閉遊標,連線
def close_conn(conn, cursor):
    cursor.close()
    conn.close()


def query(sql,*args):
    """
    封裝通用查詢
    :param sql:
    :param args:
    :return: 返回查詢到的結果,((),(),)的形式
    """
    conn, cursor = get_conn()
    cursor.execute(sql,args)
    res = cursor.fetchall()
    close_conn(conn, cursor)
    return res

因此,我們在查詢時只需要呼叫query()函數就行,*args可以讓其傳入任意個引數或者不傳引數,只需要sql語句中的預留位置和引數個數對應就可以!

使用如下圖所示

結語

只要你的sql過關,pymsql也可以幫助你完成專案!不一定需要使用orm哦!

以上就是詳解Python如何利用pymysql封裝專案通用的連線和查詢的詳細內容,更多關於Python pymysql封裝連線 查詢的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com