在上一篇Python接口自動化測試系列文章:Python接口自動化淺析yaml配置文件原理及用法,主要介紹主要介紹yaml語法、yaml存儲數(shù)據(jù),封裝類讀寫yaml配置文件。
在自動化過程中,我們需要查詢數(shù)據(jù)庫,校驗(yàn)結(jié)果是否正確,比如充值完成之后,需要查詢數(shù)據(jù)庫,查看充值是否成功。
以下主要介紹,pymysql安裝、操作流程、語法基礎(chǔ)及封裝操作數(shù)據(jù)庫類。
MySQL應(yīng)該說是如今使用最為普遍的數(shù)據(jù)庫了,沒有之一,而Python作為最為流行的語言之一,自然少不了與MySQL打交道,其中PyMySQL就是使用最多的工具庫。
方式一:使用命令安裝
pip install pymysql
方式二:PyCharm內(nèi)部安裝
導(dǎo)入模塊:
import pymysql
02
表示:conn=connect(參數(shù)列表)
作用:用于建立與數(shù)據(jù)庫的連接;
創(chuàng)建對象:調(diào)用connect()方法;
host:連接的mysql主機(jī),如本機(jī)是'localhost';
port:連接的mysql主機(jī)的端口,默認(rèn)是3306;
database:數(shù)據(jù)庫的名稱;
user:連接的用戶名;
password:連接的密碼;
charset:通信采用的編碼方式,推薦使用utf8;
對象方法如下:
close():
關(guān)閉連接;
commit():
提交;
cursor():
返回Cursor對象,用于執(zhí)行sql語句并獲得結(jié)果;
execute(operation [, parameters ]):
執(zhí)行語句,返回受影響的行數(shù),主要用于執(zhí)行insert、update、delete語句,也可以執(zhí)行create、alter、drop等語句;
fetchone():
執(zhí)行查詢語句時(shí),獲取查詢結(jié)果集的第一個(gè)行數(shù)據(jù),返回一個(gè)元組;
fetchall():
執(zhí)行查詢時(shí),獲取結(jié)果集的所有行,一行構(gòu)成一個(gè)元組,再將這些元組裝入一個(gè)元組返回;
關(guān)于pymysql防注入,字符串拼接查詢,容易造成注入,為了避免注入,使用pymysql提供的參數(shù)化語句;
游標(biāo)(cursor)就是游動的標(biāo)識,通俗的說,一條sql取出對應(yīng)n條結(jié)果資源的接口/句柄,就是游標(biāo),沿著游標(biāo)可以一次取出一行。
import pymysql # 連接數(shù)據(jù)庫 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語句 sql = 'select * from user limit 3;' res = cursor.execute(sql) # 獲取查詢結(jié)果的1條數(shù)據(jù) data = cursor.fetchone() print(data) # 關(guān)閉游標(biāo)連接 cursor.close() # 關(guān)閉數(shù)據(jù)庫連接 conn.close()
1.連接數(shù)據(jù)庫,需要host、user、password、database、charset等信息;
2.操作數(shù)據(jù)庫先創(chuàng)建游標(biāo);
3.執(zhí)行指定的sql語句,如果涉及到增、刪、改數(shù)據(jù)庫必須要conn.commit(),提交事務(wù)
4.查詢獲取數(shù)據(jù)條數(shù)有三種方法fetchone、fetchmany、fetchall。
5.需要注意的是,fetch獲取的數(shù)據(jù)默認(rèn)是元組,如果想要字典類型,
cursor=pymysql.cursors.DictCursor;
6.先關(guān)閉游標(biāo),后關(guān)閉數(shù)據(jù)庫連接;
在實(shí)際項(xiàng)目中,很多地方都有用到數(shù)據(jù)庫的操作,所以需要將數(shù)據(jù)庫相關(guān)操作進(jìn)行封裝,方便其他模塊調(diào)用。
如下,在common目錄下,新建文件db_handler.py 用于封裝數(shù)據(jù)庫操作。
db_handler.py
import pymysql class DBHandler: def __init__(self,host,port,user,password, database,charset,**kwargs): # 連接數(shù)據(jù)庫服務(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接口自動化淺析pymysql數(shù)據(jù)庫操作流程的詳細(xì)內(nèi)容,更多關(guān)于Python接口自動化pymysql數(shù)據(jù)庫操作的資料請關(guān)注腳本之家其它相關(guān)文章!
標(biāo)簽:海南 南平 盤錦 大同 林芝 寧夏 普洱 漯河
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python接口自動化淺析pymysql數(shù)據(jù)庫操作流程》,本文關(guān)鍵詞 Python,接口,自動化,淺析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。