詳解Python如何利用pymysql封裝項目通用的連接和查詢
前言
一個項目通常都需要有數(shù)據(jù)庫,而對于python這門語言,除了一些框架自帶orm或者擴展的orm(像django自帶orm,flask則需要擴展的orm),使用orm必然有他的好處,但毫無疑問你要花時間學習這個orm,那么接下來阿牛帶你們用pymysql簡單分裝一個通用的連接,關閉和查詢!
pymysql 介紹與安裝
PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務器的一個庫,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)建一個游標對象 cursor = db.cursor() # 使用 execute() 方法執(zhí)行 SQL 查詢 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法獲取單條數(shù)據(jù). data = cursor.fetchone() print("Database version : %s " % data) #關閉數(shù)據(jù)庫連接 db.close()
password為你的數(shù)據(jù)庫密碼,db是數(shù)據(jù)庫名,操作前請先建立好你的mysql數(shù)據(jù)庫。
如圖,我連接成功并且獲取到了我數(shù)據(jù)庫的版本!
方法execute執(zhí)行我們的sql語句。
在獲取執(zhí)行的結果時,可以指定獲取的結果的條數(shù),可以使用的選項如下:
fetchone() # 取得檢索結果的一條數(shù)據(jù) fetchmany(n) # 取得檢索結果的n條數(shù)據(jù) fetchall() # 取得檢索結果的所有數(shù)據(jù)
需要注意的是,與讀取文件時的指針類似,如果在同一段代碼中,先使用fetchone()獲取檢索結果的第一條數(shù)據(jù),然后再使用fetchmany(2)的話,指針會在檢索結果的當前位置向后讀取執(zhí)行結果,而不會從頭開始重新讀取檢索的結果。
獲取到的結果是元組。,如下圖:
封裝項目通用的連接和查詢
請自行寫入密碼和數(shù)據(jù)庫
import pymysql # 創(chuàng)建連接 #return: 連接,游標 def get_conn(): # 創(chuàng)建連接 conn = pymysql.connect(host="127.0.0.1", user="root", password="", db="", charset="utf8") # 創(chuàng)建游標 cursor = conn.cursor()# 執(zhí)行完畢返回的結果集默認以元組顯示 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
因此,我們在查詢時只需要調(diào)用query()函數(shù)就行,*args可以讓其傳入任意個參數(shù)或者不傳參數(shù),只需要sql語句中的占位符和參數(shù)個數(shù)對應就可以!
使用如下圖所示
結語
只要你的sql過關,pymsql也可以幫助你完成項目!不一定需要使用orm哦!
以上就是詳解Python如何利用pymysql封裝項目通用的連接和查詢的詳細內(nèi)容,更多關于Python pymysql封裝連接 查詢的資料請關注腳本之家其它相關文章!
相關文章
Python?UnicodedecodeError編碼問題解決方法匯總
本文主要介紹了Python?UnicodedecodeError編碼問題解決方法匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08windows系統(tǒng)中Python多版本與jupyter notebook使用虛擬環(huán)境的過程
這篇文章主要介紹了windows中Python多版本與jupyter notebook中使用虛擬環(huán)境的安裝過程,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-05-05python如何調(diào)用php文件中的函數(shù)詳解
這篇文章主要給大家介紹了關于python如何調(diào)用php文件中函數(shù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12pytest實戰(zhàn)技巧之參數(shù)化基本用法和多種方式
本文介紹了pytest參數(shù)化的基本用法和多種方式,幫助讀者更好地使用這個功能,同時,還介紹了一些高級技巧,如動態(tài)生成參數(shù)名稱、參數(shù)化的組合和動態(tài)生成參數(shù)化裝飾器,幫助讀者更靈活地使用參數(shù)化,感興趣的朋友參考下吧2023-12-12Python使用Selenium模塊實現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能示例
這篇文章主要介紹了Python使用Selenium模塊實現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能,涉及Python基于re模塊的正則匹配及selenium模塊的頁面抓取等相關操作技巧,需要的朋友可以參考下2018-07-07