詳解Python如何利用pymysql封裝項(xiàng)目通用的連接和查詢
前言
一個(gè)項(xiàng)目通常都需要有數(shù)據(jù)庫,而對(duì)于python這門語言,除了一些框架自帶orm或者擴(kuò)展的orm(像django自帶orm,flask則需要擴(kuò)展的orm),使用orm必然有他的好處,但毫無疑問你要花時(shí)間學(xué)習(xí)這個(gè)orm,那么接下來阿牛帶你們用pymysql簡單分裝一個(gè)通用的連接,關(guān)閉和查詢!
pymysql 介紹與安裝
PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務(wù)器的一個(gè)庫,Python2中則使用mysqldb。
在終端使用以下指令安裝:
pip3 install PyMySQL
pymysql 的使用
import pymysql
# 打開數(shù)據(jù)庫連接,password為你的數(shù)據(jù)庫密碼,db是數(shù)據(jù)庫名
db = pymysql.connect(host="127.0.0.1",
user="root",
password=" ",
db=" ",
charset="utf8")
# 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對(duì)象
cursor = db.cursor()
# 使用 execute() 方法執(zhí)行 SQL 查詢
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法獲取單條數(shù)據(jù).
data = cursor.fetchone()
print("Database version : %s " % data)
#關(guān)閉數(shù)據(jù)庫連接
db.close()
password為你的數(shù)據(jù)庫密碼,db是數(shù)據(jù)庫名,操作前請(qǐng)先建立好你的mysql數(shù)據(jù)庫。

如圖,我連接成功并且獲取到了我數(shù)據(jù)庫的版本!
方法execute執(zhí)行我們的sql語句。
在獲取執(zhí)行的結(jié)果時(shí),可以指定獲取的結(jié)果的條數(shù),可以使用的選項(xiàng)如下:
fetchone() # 取得檢索結(jié)果的一條數(shù)據(jù) fetchmany(n) # 取得檢索結(jié)果的n條數(shù)據(jù) fetchall() # 取得檢索結(jié)果的所有數(shù)據(jù)
需要注意的是,與讀取文件時(shí)的指針類似,如果在同一段代碼中,先使用fetchone()獲取檢索結(jié)果的第一條數(shù)據(jù),然后再使用fetchmany(2)的話,指針會(huì)在檢索結(jié)果的當(dāng)前位置向后讀取執(zhí)行結(jié)果,而不會(huì)從頭開始重新讀取檢索的結(jié)果。
獲取到的結(jié)果是元組。,如下圖:

封裝項(xiàng)目通用的連接和查詢
請(qǐng)自行寫入密碼和數(shù)據(jù)庫
import pymysql
# 創(chuàng)建連接
#return: 連接,游標(biāo)
def get_conn():
# 創(chuàng)建連接
conn = pymysql.connect(host="127.0.0.1",
user="root",
password="",
db="",
charset="utf8")
# 創(chuàng)建游標(biāo)
cursor = conn.cursor()# 執(zhí)行完畢返回的結(jié)果集默認(rèn)以元組顯示
return conn, cursor
# 關(guān)閉游標(biāo),連接
def close_conn(conn, cursor):
cursor.close()
conn.close()
def query(sql,*args):
"""
封裝通用查詢
:param sql:
:param args:
:return: 返回查詢到的結(jié)果,((),(),)的形式
"""
conn, cursor = get_conn()
cursor.execute(sql,args)
res = cursor.fetchall()
close_conn(conn, cursor)
return res
因此,我們?cè)诓樵儠r(shí)只需要調(diào)用query()函數(shù)就行,*args可以讓其傳入任意個(gè)參數(shù)或者不傳參數(shù),只需要sql語句中的占位符和參數(shù)個(gè)數(shù)對(duì)應(yīng)就可以!
使用如下圖所示

結(jié)語
只要你的sql過關(guān),pymsql也可以幫助你完成項(xiàng)目!不一定需要使用orm哦!
以上就是詳解Python如何利用pymysql封裝項(xiàng)目通用的連接和查詢的詳細(xì)內(nèi)容,更多關(guān)于Python pymysql封裝連接 查詢的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python格式化字符串的實(shí)戰(zhàn)教程(使用占位符、format方法)
我們經(jīng)常會(huì)用到%-formatting和str.format()來格式化,下面這篇文章主要給大家介紹了關(guān)于python格式化字符串的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Python多線程編程(八):使用Event實(shí)現(xiàn)線程間通信
這篇文章主要介紹了Python多線程編程(八):使用Event實(shí)現(xiàn)線程間通信,,需要的朋友可以參考下2015-04-04
利用Python實(shí)現(xiàn)在同一網(wǎng)絡(luò)中的本地文件共享方法
今天小編就為大家分享一篇利用Python實(shí)現(xiàn)在同一網(wǎng)絡(luò)中的本地文件共享方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python實(shí)現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換
PDF是數(shù)據(jù)文檔管理領(lǐng)域常用格式之一,主要用于存儲(chǔ)和共享包含文本、圖像、表格、鏈接等的復(fù)雜文檔,而TIFF常見于圖像處理領(lǐng)域, 在實(shí)際應(yīng)用中,我們可能有時(shí)需要將PDF文件轉(zhuǎn)換為TIFF圖像,本文將介紹如何使用Python實(shí)現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換,需要的朋友可以參考下2024-07-07
Python實(shí)現(xiàn)人生重開模擬器小游戲講解
這篇文章主要介紹了Python實(shí)現(xiàn)人生重開模擬器小游戲,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01
Python數(shù)據(jù)清洗之抽取jsonl文件數(shù)據(jù)字段并合并
這篇文章主要為大家詳細(xì)介紹了Python數(shù)據(jù)清洗之抽取jsonl文件數(shù)據(jù)字段并合并的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-03-03

