在做python自動化時,結(jié)果斷言很重要,相較數(shù)據(jù)固定校驗(yàn)(數(shù)據(jù)維護(hù)比較復(fù)雜),我們更期望實(shí)現(xiàn)動態(tài)的校驗(yàn)數(shù)據(jù)。
數(shù)據(jù)存儲在數(shù)據(jù)庫或者redis中,因此學(xué)會python操作數(shù)據(jù)庫和redis勢在必行。
安裝和使用:
安裝pymysql
pipinstallpymysql
導(dǎo)入pymysql
importpymysql
數(shù)據(jù)庫操作
1.首先,連接數(shù)據(jù)庫
conn=pymysql.connect(host='host',user='user',password='password',database='database',charset='utf8')
2.獲取游標(biāo)對象
#得到一個可以執(zhí)行SQL語句的光標(biāo)對象,默認(rèn)輸出為元組,如果字典形式輸出:cursor=conn.cursor(pymysql.cursors.DictCursor)
cursor=conn.cursor()
3.執(zhí)行sql語句
result=cursor.execute(sql)
4.關(guān)閉光標(biāo)對象
cursor.close()
5.關(guān)閉數(shù)據(jù)庫連接
conn.close()
6.其他
conn.commit()為提交事務(wù):
因?yàn)閜ymysql模塊默認(rèn)是啟用事務(wù)的。如果不提交,相當(dāng)于沒有執(zhí)行。
一般在增刪改sql執(zhí)行后,需要提交事務(wù)。
cursor.executemany批量操作數(shù)據(jù)。
適用于增刪改。
執(zhí)行sql時,如果發(fā)生異常,可進(jìn)行異常處理-回滾。
try:
result=cursor.executemany(sql_add,data)
conn.commit()
exceptExceptionase:
conn.rollback()
示例
1.增加數(shù)據(jù)
sql_add='insertintouser(name,pwd)VALUES(%s,%s);'
#執(zhí)行SQL語句
result=cursor.execute(sql_add,['admin','admin123'])
#提交事務(wù)
conn.commit()
2.刪除數(shù)據(jù)
sql_del='deletefromuserwherename='admin';
#執(zhí)行SQL語句
result=cursor.execute(sql_del,['admin','admin123'])
conn.commit()
3.修改數(shù)據(jù)
sql_update='updateusersetname=%swherename=%s';
result=cursor.execute(sql_update,['admin','admin123'])
conn.commit()
4.查詢數(shù)據(jù)
#定義要執(zhí)行的SQL語句
sql='select*fromuserwherename=%sandpwd=%s;'
#執(zhí)行SQL語句
result=cursor.execute(sql,['admin','admin123'])
#獲取一個
print(cursor.fetchone())
#獲取多個,默認(rèn)為1
print(cursor.fetchmany(2))
#獲取所有
print(cursor.fetchall())
以上內(nèi)容為大家介紹了Python操作MySQL,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/