亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python pymsql模塊的使用

瀏覽:2日期:2022-07-12 09:12:29

基本使用

首先要下載 pymysql

pip install pymsql

以下是 pymysql 的基本使用

import pymysql# 鏈接,C/S架構,TCP鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結果,字典顯示 # password = 'your password', ) # 游標cursor = conn.cursor()# 執行sqlsql = 'show tables'res = cursor.execute(sql) # 提交執行,返回sql影響成功的行數print(res) # 2 代表該數據庫下有2個表print(cursor.fetchall()) # [{’Tables_in_db1’: ’t1’}, {’Tables_in_db1’: ’t2’}]cursor.close() # 關閉游標conn.close()

游標概念

可以看到在上面的示例中有一個游標的概念,其實這個也非常簡單,就等同于光標的上下移動,每移動一次代表一條記錄。

Python pymsql模塊的使用

在 pymsql 中,對于 select 等操作返回的結果都可以通過游標的移動配合相應方法函數來進行讀取。

sql注入

如果你的某些 sql 語句要進行字符串拼接,那么一定要使用 pymysql 提供的 execute() 方法進行拼接,不要去用 python 中的 % 或 format() 方法,這可能導致出現 sql 注入問題帶來不安全的隱患。

注意:使用 execute() 時,不可傳入表名,數據庫名。否則會拋出語法錯誤,這是因為在拼接時會自動添加上``號

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結果,字典顯示 # password = 'your password', ) # 游標cursor=conn.cursor()# 執行sqlsql = 'select * from t1 where id=%s'res = cursor.execute(sql,('1',)) # 提交執行,返回sql影響成功的行數 這里拼接能預防sql注入問題print(res) # 1 查出一條記錄print(cursor.fetchall()) # 拿到所有記錄的結果cursor.close() # 關閉游標conn.close()

事務提交

在執行 UPDATE/INSERT/DELETE 之類的操作,必須使用 conn.commit() 進行事務提交后方可生效。

或者你可以在實例化 conn 對象時為他指定 auto_commit 參數為 true 即可自動提交事務。

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結果,字典顯示 autocommit = True, # 自動提交 # password = 'your password', ) # 游標cursor=conn.cursor()# 執行sqlsql = 'insert into t1(name) values(%s)'res = cursor.execute(sql,('新記錄',)) # 提交執行,返回sql影響成功的行數 這里拼接能預防sql注入問題print(res) # 1 成功插入一條記錄print(cursor.lastrowid) #在插入語句后查看,查看最后一條記錄的行號print(cursor.fetchall())# conn.commit() # 手動提交cursor.close() # 關閉游標conn.close()

提交多條

使用 cursor.executemany() 方法可一次性提交多條 sql 操作。

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結果,字典顯示 autocommit = True, # 自動提交 # password = 'your password', ) # 游標cursor=conn.cursor()# 執行sqlsql = 'insert into t1(name) values(%s)' # 同一條命令,執行3次res = cursor.executemany(sql,[('新記錄1'),('新紀錄2'),('新紀錄3')]) # 提交執行,返回sql影響成功的行數 這里拼接能預防sql注入問題print(res) # 3 成功插入三條記錄print(cursor.lastrowid) #在插入語句后查看,查看最后一條記錄的行號print(cursor.fetchall())cursor.close() # 關閉游標conn.close()

游標相關

獲取到一條記錄后,我們可以控制游標移動。

也可以控制查看游標后的多少條記錄

游標每移動一次代表一條記錄

命令解析 描述 cursor.scroll(3,mode=’absolute’) 游標以絕對位置向后移動3條記錄 cursor.scroll(3,mode=’relative’) 游標以當前位置向后移動3條記錄 注意:游標移動的條數即為記錄的條數,如果移動值為負N就代表上N條記錄

如果我們想獲取記錄,可使用以下三個方法

命令解析 描述 cursor.fetchone() 獲取第一條記錄,游標向下移動一行 cursor.fetchmany(2) 獲取接下來的兩條記錄,游標向下移動兩行 cursor.fetchall() 獲取全部記錄,游標移動到末尾,返回的是一個列表

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結果,字典顯示 autocommit = True, # 自動提交 # password = 'your password', ) # 游標cursor=conn.cursor()# 執行sqlsql = 'select * from t1' # t1表中4條記錄cursor.execute(sql)print(cursor.fetchone()) 游標移動到2的位置cursor.scroll(2,mode=’relative’) 向下移動2,當前游標為4print(cursor.fetchone())cursor.close() # 關閉游標conn.close()'''{’id’: 1, ’name’: ’記錄1’}{’id’: 4, ’name’: ’記錄4’}'''

插入行號

如果執行的是 INSERT 操作,可以在插入后查看最后插入的 ID 行號

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結果,字典顯示 autocommit = True, # 自動提交 # password = 'your password', ) # 游標cursor=conn.cursor()# 執行sqlsql = 'insert into t1(name) values(%s)' # 同一條命令,執行3次res = cursor.executemany(sql,[('新記錄1'),('新紀錄2'),('新紀錄3')]) # 提交執行,返回sql影響成功的行數 這里拼接能預防sql注入問題print(res) # 3 成功插入三條記錄print(cursor.lastrowid) #在插入語句后查看,查看最后一條記錄的行號print(cursor.fetchall())# conn.commit() # 手動提交cursor.close() # 關閉游標conn.close()

以上就是Python pymsql模塊的使用的詳細內容,更多關于Python pymsql的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 一本一本大道香蕉久在线精品 | 国产丝袜啪啪 | 成人三级在线播放 | 国产成人在线免费视频 | 成人国产网站 | 亚洲高清视频在线观看 | 114一级毛片免费 | 黄色影院免费观看 | 91视频这里只有精品 | jizz国产精品免费麻豆 | 免费在线观看一级片 | 182午夜在线观看 | 国产高清在线观看麻豆 | 久久久久国产精品美女毛片 | 欧洲成人全免费视频网站 | 国产曰批视频免费观看完 | 久久中文字幕亚洲 | 国产真实偷乱视频在线观看 | 成人18免费网站在线观看 | 欧美性高清在线 | 97免费在线视频 | 国产理论最新国产精品视频 | 青青国产成人久久91网站站 | 免费观看激色视频网站(性色) | 中文日韩欧美 | 精品欧美亚洲韩国日本久久 | 久久机热综合久久国产 | 日韩欧美在线综合 | 深夜精品影院18以下勿进 | 成人不卡视频 | 亚洲欧美一区二区三区不卡 | 高清三级毛片 | 香蕉国产精品 | 动漫精品专区一区二区三区不卡 | 一区国产传媒国产精品 | 亚洲色图欧美一区 | 织田真子中文字幕 | 日产国产欧美视频一区精品 | 国产精品久久久久aaaa | 免费又爽又黄禁片观看1000 | 国产一区二区精品久久91 |