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