十五、Python操作mysql数据库
生活随笔
收集整理的這篇文章主要介紹了
十五、Python操作mysql数据库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
利用Navicat Premium 15軟件連接mysql數據庫,新建testdb數據庫,并添加2個表usertest和userinfo。
?
main.py
#!/usr/bin/python3 # -*- coding: utf-8 -*- import reimport pymysql # 導入模塊myConn = pymysql.connect(host='127.0.0.1', # 主機模塊port=3306, # 端口號user='root', # 用戶名password='root', # 密碼database='testdb', # 需要連接的數據庫charset='utf8' # 指定編碼utf8 )if __name__ == '__main__':# myCursor = myConn.cursor() # 獲取游標,默認游標類型為元組形式myCursor = myConn.cursor(pymysql.cursors.DictCursor) # 獲取的查詢結果更加規范化 便于分辨sql = "select * from userTest;"row_count = myCursor.execute(sql) # row_count 受影響的行數for x in myCursor.fetchall(): # 取出所有的print(x)try:# ===插入記錄===sql = "INSERT INTO userTest(id,name,age) VALUES(%s, %s, %s)"val = (6, "John", 23)myCursor.execute(sql, val) # 執行sql語句"""val = [(7, "Lily", 30),(8, "Martin", 35),(9, "Sally", 32)]myCursor.executemany(sql, val) # 插入多行數據時,執行sql語句"""# ===修改記錄===# 以字符串形式書寫SQL語句sql = "update userTest set name = '劉琪' where name = '韓寒'; "# 執行SQL語句row_count = myCursor.execute(sql)# ===刪除記錄===# 以字符串形式書寫SQL語句sql = "delete from userTest where name= '王五' ;"# 執行SQL語句row_count = myCursor.execute(sql)myConn.commit() # 增刪改操作時,需要進行提交except Exception as err:# 檢查異常原因是否是感興趣的result1 = re.search('Duplicate entry.*key.*PRIMARY', str(err))# 如果是,什么都不用做# 否則(也不知道是什么原因),那就回滾吧if result1 is None:myConn.rollback()raisemyCursor = myConn.cursor(pymysql.cursors.DictCursor) # 獲取的查詢結果更加規范化 便于分辨sql = "select * from userTest;"row_count = myCursor.execute(sql) # row_count受影響的行數for x in myCursor.fetchall(): # 取出所有的print(x)# =====使用數據來進行一下用戶名和密碼的認證操作======myCursor = myConn.cursor(pymysql.cursors.DictCursor)usr = input('請輸入用戶名:').strip()pwd = input('請輸入密碼:').strip()# 當已知用戶名時 破解密碼為 (feng'-- dfadasdad)# 當未知用戶名密碼時 破解密碼為 (fsdf' or 1=1 -- fdsfsdfs)try:sql = "select * from userinfo where username='%s' and password='%s';" % (usr, pwd)# res我們說是得到的行數,如果這個行數不為零,說明用戶輸入的用戶名和密碼存在,如果為0說明不存在row_count = myCursor.execute(sql) # pymysql 模塊會自動將輸入的特殊字符刪除print(row_count) # 如果輸入的用戶名和密碼錯誤,這個結果為0,如果正確,這個結果為1if row_count:print('登陸成功')else:print('用戶名和密碼錯誤!')except Exception as err:# 檢查異常原因是否是感興趣的result1 = re.search('Duplicate entry.*key.*PRIMARY', str(err))# 如果是,什么都不用做# 否則(也不知道是什么原因),那就回滾吧if result1 is None:myConn.rollback()raisemyCursor.close() # 關閉游標myConn.close() # 關閉連接?
總結
以上是生活随笔為你收集整理的十五、Python操作mysql数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux debian设置主机不休眠教
- 下一篇: Linux五种清理系统垃圾的方式