最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python如何利用pymysql封裝項(xiàng)目通用的連接和查詢

 更新時(shí)間:2022年07月22日 16:13:41   作者:館主阿牛  
一個(gè)項(xiàng)目通常都需要有數(shù)據(jù)庫(kù),本文就來為大家詳細(xì)講講Python如何利用pymysql簡(jiǎn)單分裝一個(gè)通用的連接,關(guān)閉和查詢,需要的可以參考一下

前言

一個(gè)項(xiàng)目通常都需要有數(shù)據(jù)庫(kù),而對(duì)于python這門語言,除了一些框架自帶orm或者擴(kuò)展的orm(像django自帶orm,flask則需要擴(kuò)展的orm),使用orm必然有他的好處,但毫無疑問你要花時(shí)間學(xué)習(xí)這個(gè)orm,那么接下來阿牛帶你們用pymysql簡(jiǎn)單分裝一個(gè)通用的連接,關(guān)閉和查詢!

pymysql 介紹與安裝

PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務(wù)器的一個(gè)庫(kù),Python2中則使用mysqldb。

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

pip3 install PyMySQL

pymysql 的使用

import  pymysql

# 打開數(shù)據(jù)庫(kù)連接,password為你的數(shù)據(jù)庫(kù)密碼,db是數(shù)據(jù)庫(kù)名
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ù)庫(kù)連接
db.close()

password為你的數(shù)據(jù)庫(kù)密碼,db是數(shù)據(jù)庫(kù)名,操作前請(qǐng)先建立好你的mysql數(shù)據(jù)庫(kù)。

如圖,我連接成功并且獲取到了我數(shù)據(jù)庫(kù)的版本!

方法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ù)庫(kù)

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)文章

最新評(píng)論

华阴市| 汪清县| 永安市| 奎屯市| 美姑县| 类乌齐县| 茂名市| 通道| 阳曲县| 九江市| 泌阳县| 汝州市| 盈江县| 沾益县| 万宁市| 南漳县| 砀山县| 上高县| 林口县| 吉木乃县| 姜堰市| 北宁市| 沁水县| 广河县| 富平县| 广宁县| 莆田市| 都昌县| 玉龙| 北海市| 盱眙县| 吴堡县| 临沭县| 同德县| 盘锦市| 武安市| 榆林市| 晋中市| 九江市| 江川县| 玉树县|