前言做自動(dòng)化測(cè)試的時(shí)候,注冊(cè)了一個(gè)新用戶,產(chǎn)生了多余的數(shù)據(jù),下次用同一賬號(hào)就無(wú)法注冊(cè)了,這種情況該怎么辦呢? 環(huán)境準(zhǔn)備: 環(huán)境準(zhǔn)備使用pip安裝PyMySQL
先使用第三方工具連接mysql數(shù)據(jù)庫(kù),比如navicat連接mysql,參考這篇https://www.cnblogs.com/yoyoketang/p/9994078.html 如下圖連接測(cè)試通過(guò),那么連接數(shù)據(jù)庫(kù)至少應(yīng)該知道這些信息,用戶名和密碼是授權(quán)遠(yuǎn)程客戶端的用戶名和密碼,授權(quán)相關(guān)參考這篇https://www.cnblogs.com/yoyoketang/p/10268896.html 連接名: 自己定義,這個(gè)無(wú)所謂 查詢操作如果新建了一個(gè)test數(shù)據(jù)庫(kù),里面有一張user表,有name和psw兩個(gè)字段,使用sql查詢結(jié)果如下
接下來(lái)使用python轉(zhuǎn)換成對(duì)應(yīng)的代碼查詢 import pymysql
# 打開(kāi)數(shù)據(jù)庫(kù)連接
db = pymysql.connect(host='47.104.x.x',
port=3306,
user='root',
passwd='123456',
db='test')
# 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對(duì)象cur
cur = db.cursor()
# 使用 execute() 方法執(zhí)行 SQL 查詢
cur.execute("select name, psw from user")
# 使用 fetchall() 方法獲取查詢結(jié)果
data = cur.fetchall()
print(data)
# 關(guān)閉數(shù)據(jù)庫(kù)連接
db.close() 運(yùn)行結(jié)果: (('yoyo_1’, '111111’), ('yoyo’, '123456’), ('yoyo_2’, '111111’), ('yoyo_3’, '222222’), ('yoyo_4’, '444444’)) 有時(shí)候我們只想查詢某個(gè)字段對(duì)應(yīng)的值,比如查詢yoyo_1賬號(hào)對(duì)應(yīng)的psw值,并且取出來(lái)
查詢的結(jié)果是(('111111’,),) 元組嵌套元組,取值的話用下標(biāo)取出來(lái)就可以了 import pymysql
def select_db(sql):
'''查詢數(shù)據(jù)庫(kù)'''
# 打開(kāi)數(shù)據(jù)庫(kù)連接
db = pymysql.connect(host='47.104.x.x',
port=3306,
user='root',
passwd='123456',
db='test')
# 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對(duì)象cur
cur = db.cursor()
# 使用 execute() 方法執(zhí)行 SQL 查詢
cur.execute(sql)
# 使用 fetchall() 方法獲取查詢結(jié)果
data = cur.fetchall()
# print(data) # 取出對(duì)應(yīng)的psw值
# 關(guān)閉數(shù)據(jù)庫(kù)連接
db.close()
return data
if __name__ == "__main__":
sql = "select psw from user where name='yoyo_3'"
a = select_db(sql)[0][0]
print("查詢結(jié)果:%s" %str(a)) 刪除操作使用python刪除一條數(shù)據(jù),比如我要?jiǎng)h除yoyo_1這條記錄
import pymysql
def delete_db(sql_delete):
'''刪除操作'''
# 打開(kāi)數(shù)據(jù)庫(kù)連接
db = pymysql.connect(host='47.104.x.x',
port=3306,
user='root',
passwd='123456',
db='test')
# 使用cursor()方法獲取操作游標(biāo)
cur = db.cursor()
try:
cur.execute(sql_delete) # 執(zhí)行
# 提交
db.commit()
except Exception as e:
print("操作異常:%s" % str(e))
# 錯(cuò)誤回滾
db.rollback()
finally:
db.close()
if __name__ == '__main__':
sql_delete ="delete from user where name='yoyo_1' "
delete_db(sql_delete) 更新操作更新name用戶名是yoyo的用戶,把psw改成666666
import pymysql
def update_db(sql_update):
'''3.更新操作'''
db = pymysql.connect(host='47.104.x.x',
port=3306,
user='root',
passwd='123456',
db='test')
# 使用cursor()方法獲取操作游標(biāo)
cur = db.cursor()
try:
cur.execute(sql_update) # 執(zhí)行sql
# 提交
db.commit()
except Exception as e:
# 錯(cuò)誤回滾
print("錯(cuò)誤信息:%s" % str(e))
db.rollback()
finally:
db.close()
if __name__ == '__main__':
sql_update ="update user set psw='666666' where name='yoyo'"
update_db(sql_update) 新增數(shù)據(jù)往數(shù)據(jù)庫(kù)里面插入一條數(shù)據(jù),比如在user表里面新增一個(gè)用戶信息yoyo_10,123456
import pymysql
def insert_db(sql_insert):
'''插入操作'''
db = pymysql.connect(host='47.104.x.x',
port=3306,
user='root',
passwd='123456',
db='test')
# 使用cursor()方法獲取操作游標(biāo)
cur = db.cursor()
try:
cur.execute(sql_insert)
# 提交
db.commit()
except Exception as e:
print("錯(cuò)誤信息:%s" % str(e))
# 錯(cuò)誤回滾
db.rollback()
finally:
db.close()
if __name__ == "__main__":
sql_insert = "insert into user(id, name, psw) values(10, 'yoyo_10', '123456')"
insert_db(sql_insert) 從上面的代碼可以看出,除了查詢的代碼不一樣,新增、刪除、更新數(shù)據(jù)庫(kù)操作代碼都一樣,只是執(zhí)行的sql不一樣 2019年《python全棧自動(dòng)化測(cè)試課程》2月16號(hào)開(kāi)學(xué)! 主講老師:上海-悠悠上課方式:QQ群視頻在線教學(xué)上課時(shí)間:每周六、周日晚上20:30-22:30 |
|