目錄
前言
一個(gè)項(xiàng)目通常都需要有數(shù)據(jù)庫,而對于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)對象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ù)庫名,操作前請先建立好你得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)得話,指針會在檢索結(jié)果得當(dāng)前位置向后讀取執(zhí)行結(jié)果,而不會從頭開始重新讀取檢索得結(jié)果。
獲取到得結(jié)果是元組。,如下圖:
封裝項(xià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
因此,我們在查詢時(shí)只需要調(diào)用query()函數(shù)就行,*args可以讓其傳入任意個(gè)參數(shù)或者不傳參數(shù),只需要sql語句中得占位符和參數(shù)個(gè)數(shù)對應(yīng)就可以!
使用如下圖所示
結(jié)語
只要你得sql過關(guān),pymsql也可以幫助你完成項(xiàng)目!不一定需要使用orm哦!
以上就是詳解Python如何利用pymysql封裝項(xiàng)目通用得連接和查詢得詳細(xì)內(nèi)容,更多關(guān)于Python pymysql封裝連接 查詢得資料請關(guān)注之家其它相關(guān)內(nèi)容!