Python中的MySQL数据库编程
1.剛開始我們先給一張圖片,是介紹Python操作MySQl詳細步驟。
2.在Python語言中要想操作數據庫,就需要使用的pymysql這個模塊。
from pymysql import connect
3.獲取connection連接對象
要和MySQL數據庫連接,需要調用pymysql模塊中的connect()方法,其中也包括一些參數解釋。
conn=connect(參數列表)- 參數host:連接的mysql主機,如果本機是’localhost’
- 參數port:連接的mysql主機的端口,默認是3306
- 參數database:數據庫的名稱
- 參數user:連接的用戶名
- 參數password:連接的密碼
- 參數charset:通信采用的編碼方式,推薦使用utf8
4. 常用的方法有以下:
- 關閉數據庫連接 conn.close()
- 提交數據 conn.commit()
- 撤銷回滾數據 conn.rollback()
- 獲取游標 cur = conn.cursor()
5.Cursor游標對象
5.1獲取Cursor對象
調用Connection對象的cursor()方法
cur =conn.cursor()目的: 執行sql語句(使用頻度最高的語句為select、insert、update、delete)
5.2 使用游標執行SQL語句
execute(operation [, parameters ])執行SQL語句,返回受影響的行數,主要用于執行insert、update、delete語句,也可以執行create、alter、drop等語句
5.3 關閉游標
cur.close()
5.4 獲取結果集中的一條
cur.fetchone()返回一個元組
5.5 獲取結果集中的所有
cur.fetchall()執行查詢時,獲取結果集的所有行,一行構成一個元組,再將這些元組裝入一個元組返回
6.pymysql完成數據查詢
import pymysqlconn = pymysql.connect(host='localhost', port=3306, user='root',password='mysql',database='python_test_1', charset='utf8') # 獲取游標 cursor = conn.cursor()# 執行SQL語句 返回值就是SQL語句在執行過程中影響的行數 sql = "select * from hero;"row_count = cursor.execute(sql) print("SQL語句執行影響的行數%d" % row_count)# 取出結果集中一行 返回的結果是一行 print(cursor.fetchone())# 取出結果集中的所有數據 返回一行數據 for line in cursor.fetchall():print(line) # 關閉游標 cursor.close() # 關閉連接 conn.close()7.pymysql完成對數據庫的增刪改
import pymysqlconn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='mysql',db='python_test_1', charset='utf8') # 通過連接獲取游標 cursor = conn.cursor() # sql = "delete from hero where id = 5;" # sql = insert into hero (name) values ('黎明'); sql = "update hero set kongfuid=444 where id = 4;"row_count = cursor.execute(sql) print("SQL語句執行影響的行數%d" % row_count) # 提交數據到數據庫 conn.commit()# 回滾數據到什么都不做的狀態 即撤銷剛剛的修改 # conn.rollback()# 關閉游標和連接 cursor.close() conn.close()8.參數化列表防止SQL注入
SQL注入 產生原因: 后臺將用戶提交的帶有惡意的數據和SQL進行字符串方式的拼接,從而影響了SQL語句的語義,最終產生數據泄露的現象。
如果防止: sql語句的參數化, 將SQL語句的所有數據參數存在一個列表中傳遞給execute函數的第二個參數
總結
以上是生活随笔為你收集整理的Python中的MySQL数据库编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python识别图片的清晰度
- 下一篇: python 获取指定目录下的图片文件