濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程

Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程

熱門(mén)標(biāo)簽:ai電話機(jī)器人哪里好 湛江智能外呼系統(tǒng)廠家 地圖標(biāo)注審核表 ai電銷(xiāo)機(jī)器人源碼 外呼并發(fā)線路 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢(qián) 百度地圖標(biāo)注沒(méi)有了 長(zhǎng)沙高頻外呼系統(tǒng)原理是什么 宿遷星美防封電銷(xiāo)卡

在上一篇Python接口自動(dòng)化測(cè)試系列文章:Python接口自動(dòng)化淺析yaml配置文件原理及用法,主要介紹主要介紹yaml語(yǔ)法、yaml存儲(chǔ)數(shù)據(jù),封裝類(lèi)讀寫(xiě)yaml配置文件。

在自動(dòng)化過(guò)程中,我們需要查詢(xún)數(shù)據(jù)庫(kù),校驗(yàn)結(jié)果是否正確,比如充值完成之后,需要查詢(xún)數(shù)據(jù)庫(kù),查看充值是否成功。

以下主要介紹,pymysql安裝、操作流程、語(yǔ)法基礎(chǔ)及封裝操作數(shù)據(jù)庫(kù)類(lèi)。

一、pymysql介紹及安裝

01 pymysql介紹

MySQL應(yīng)該說(shuō)是如今使用最為普遍的數(shù)據(jù)庫(kù)了,沒(méi)有之一,而Python作為最為流行的語(yǔ)言之一,自然少不了與MySQL打交道,其中PyMySQL就是使用最多的工具庫(kù)。

  • PyMySQL是一個(gè)純Python寫(xiě)的MySQL客戶(hù)端,可以在CPython、PyPy、IronPython和Jython環(huán)境下運(yùn)行;
  • PyMySQL的性能和MySQLdb幾乎相當(dāng),如果對(duì)性能要求 不是特別的強(qiáng),使用PyMySQL將更加方便;
  • PyMySQL的使用方法和MySQLdb幾乎一樣;

02 pymysql安裝

方式一:使用命令安裝

pip install pymysql

方式二:PyCharm內(nèi)部安裝

導(dǎo)入模塊:

import pymysql

二、pymysql流程及模塊說(shuō)明

01 pymysql操作流程

  • 導(dǎo)入pymysql;
  • 建立數(shù)據(jù)庫(kù)連接:使用pymysql的connect()方法連接數(shù)據(jù),返回連接對(duì)象;
  • 使用連接對(duì)象創(chuàng)建游標(biāo)對(duì)象(用于操作sql);
  • 準(zhǔn)備寫(xiě)sql語(yǔ)句(select * from student);
  • 使用游標(biāo)對(duì)象執(zhí)行sql;
  • 查詢(xún)數(shù)據(jù)使用游標(biāo)獲取;
  • 關(guān)閉游標(biāo)(先)和數(shù)據(jù)庫(kù)連接(后)。

02

02pymysql模塊說(shuō)明

Connection對(duì)象

表示:conn=connect(參數(shù)列表)

作用:用于建立與數(shù)據(jù)庫(kù)的連接;

創(chuàng)建對(duì)象:調(diào)用connect()方法;

參數(shù)列表:

host:連接的mysql主機(jī),如本機(jī)是'localhost';

port:連接的mysql主機(jī)的端口,默認(rèn)是3306;

database:數(shù)據(jù)庫(kù)的名稱(chēng);

user:連接的用戶(hù)名;

password:連接的密碼;

charset:通信采用的編碼方式,推薦使用utf8;

對(duì)象的方法

對(duì)象方法如下:

close():關(guān)閉連接;

commit():提交;

cursor():返回Cursor對(duì)象,用于執(zhí)行sql語(yǔ)句并獲得結(jié)果;

execute(operation [, parameters ]):執(zhí)行語(yǔ)句,返回受影響的行數(shù),主要用于執(zhí)行insert、update、delete語(yǔ)句,也可以執(zhí)行create、alter、drop等語(yǔ)句;

fetchone():執(zhí)行查詢(xún)語(yǔ)句時(shí),獲取查詢(xún)結(jié)果集的第一個(gè)行數(shù)據(jù),返回一個(gè)元組;

fetchall():執(zhí)行查詢(xún)時(shí),獲取結(jié)果集的所有行,一行構(gòu)成一個(gè)元組,再將這些元組裝入一個(gè)元組返回;

關(guān)于pymysql防注入,字符串拼接查詢(xún),容易造成注入,為了避免注入,使用pymysql提供的參數(shù)化語(yǔ)句;

Cursor對(duì)象

游標(biāo)(cursor)就是游動(dòng)的標(biāo)識(shí),通俗的說(shuō),一條sql取出對(duì)應(yīng)n條結(jié)果資源的接口/句柄,就是游標(biāo),沿著游標(biāo)可以一次取出一行。

  • 用于執(zhí)行sql語(yǔ)句,使用頻度最高的語(yǔ)句為select、insert、update、delete;
  • 獲取Cursor對(duì)象:調(diào)用Connection對(duì)象的cursor()方法:cs1=conn.cursor()

對(duì)象的屬性

  • rowcount只讀屬性,表示最近一次execute()執(zhí)行后受影響的行數(shù);
  • connection獲得當(dāng)前連接對(duì)象;

三、pymysql語(yǔ)法基礎(chǔ)

01 代碼示例

import pymysql
# 連接數(shù)據(jù)庫(kù)
conn = pymysql.connect(host='127.0.0.1', user='ITester', password='123456',
                       database='ITester', charset='utf8')
# 創(chuàng)建游標(biāo)
cursor = conn.cursor()
# 執(zhí)行sql語(yǔ)句
sql = 'select * from user limit 3;'
res = cursor.execute(sql)
# 獲取查詢(xún)結(jié)果的1條數(shù)據(jù)
data = cursor.fetchone()
print(data)
# 關(guān)閉游標(biāo)連接
cursor.close()
# 關(guān)閉數(shù)據(jù)庫(kù)連接
conn.close()

02 語(yǔ)法總結(jié)

1.連接數(shù)據(jù)庫(kù),需要host、user、password、database、charset等信息;

2.操作數(shù)據(jù)庫(kù)先創(chuàng)建游標(biāo);

3.執(zhí)行指定的sql語(yǔ)句,如果涉及到增、刪、改數(shù)據(jù)庫(kù)必須要conn.commit(),提交事務(wù)

4.查詢(xún)獲取數(shù)據(jù)條數(shù)有三種方法fetchone、fetchmany、fetchall。

  • cursor.fetchone() :默認(rèn)獲取查詢(xún)結(jié)果的第一條數(shù)據(jù);
  • cursor.fetchmany(2) :獲取查詢(xún)結(jié)果的指定條數(shù),比如獲取2條數(shù)據(jù);
  • cursor.fetchall() :獲取查詢(xún)結(jié)果的所有數(shù)據(jù);

5.需要注意的是,fetch獲取的數(shù)據(jù)默認(rèn)是元組,如果想要字典類(lèi)型,

cursor=pymysql.cursors.DictCursor;

6.先關(guān)閉游標(biāo),后關(guān)閉數(shù)據(jù)庫(kù)連接;

四、封裝數(shù)據(jù)庫(kù)類(lèi)

01 封裝說(shuō)明

在實(shí)際項(xiàng)目中,很多地方都有用到數(shù)據(jù)庫(kù)的操作,所以需要將數(shù)據(jù)庫(kù)相關(guān)操作進(jìn)行封裝,方便其他模塊調(diào)用。

如下,在common目錄下,新建文件db_handler.py 用于封裝數(shù)據(jù)庫(kù)操作。

db_handler.py

import pymysql
class DBHandler:
    def __init__(self,host,port,user,password,
                 database,charset,**kwargs):
        # 連接數(shù)據(jù)庫(kù)服務(wù)器
        self.conn = pymysql.connect(host=host, port=port, user=user,password=password,
                                    database=database,cursorclass=pymysql.cursors.DictCursor,
                                    charset=charset,**kwargs)
        # 獲取游標(biāo)
        self.cursor = self.conn.cursor()
    
    def query(self, sql, args=None,one=True):
        self.cursor.execute(sql, args)
        # 提交事務(wù)
        self.conn.commit()
        if one:
            return self.cursor.fetchone()
        else:
            return self.cursor.fetchall()
    def close(self):
        self.cursor.close()
        self.conn.close()
if __name__ == "__main__":
    db = DBHandler(host='127.0.0.1', port=3306,
                   user='ITester', password='123456',
                   database='ITester', charset='utf8')
    sql = 'select * from user limit 1;'
    data = db.query(sql)
    print(data)

以上就是Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程的詳細(xì)內(nèi)容,更多關(guān)于Python接口自動(dòng)化pymysql數(shù)據(jù)庫(kù)操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 利用python中pymysql操作MySQL數(shù)據(jù)庫(kù)的新手指南
  • python使用pymysql模塊操作MySQL
  • pymysql實(shí)現(xiàn)增刪改查的操作指南(python)
  • python 基于PYMYSQL使用MYSQL數(shù)據(jù)庫(kù)
  • python pymysql庫(kù)的常用操作
  • Python pymysql模塊安裝并操作過(guò)程解析
  • python數(shù)據(jù)庫(kù)操作mysql:pymysql、sqlalchemy常見(jiàn)用法詳解
  • 在python中使用pymysql往mysql數(shù)據(jù)庫(kù)中插入(insert)數(shù)據(jù)實(shí)例
  • Python使用pymysql模塊操作mysql增刪改查實(shí)例分析
  • python之pymysql模塊簡(jiǎn)單應(yīng)用示例代碼
  • wxpython+pymysql實(shí)現(xiàn)用戶(hù)登陸功能
  • 在Python中使用MySQL--PyMySQL的基本使用方法
  • Python 中使用 PyMySQL模塊操作數(shù)據(jù)庫(kù)的方法
  • 使用python連接mysql數(shù)據(jù)庫(kù)之pymysql模塊的使用
  • Python pymysql操作MySQL詳細(xì)

標(biāo)簽:海南 南平 盤(pán)錦 大同 林芝 寧夏 普洱 漯河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程》,本文關(guān)鍵詞  Python,接口,自動(dòng)化,淺析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    上犹县| 聂拉木县| 鄂温| 靖远县| 元氏县| 马公市| 儋州市| 英德市| 丰镇市| 莎车县| 印江| 永新县| 延川县| 泌阳县| 曲水县| 郯城县| 游戏| 清丰县| 喀什市| 盘山县| 大丰市| 大庆市| 凤山县| 商洛市| 呼图壁县| 临洮县| 叙永县| 桂阳县| 依兰县| 永济市| 奎屯市| 天门市| 北京市| 尉氏县| 中西区| 巫山县| 南通市| 荔浦县| 陆良县| 井陉县| 洞头县|