您好,登錄后才能下訂單哦!
Python操作MySQL的技巧有哪些?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1、獲取插入數據的主鍵id
import pymysql database = pymysql.connect( host="127.0.0.1", port=3306, user="root", password="root", database="test" ) cursor = database.cursor() for i in range(5): cursor.execute('insert into test (name) values ("test")') print(database.insert_id()) database.commit() cursor.close() database.close()
通過db.insert_id()方法可以獲取插入數據的主鍵id, 注意一定要在commit之前獲取,否則返回0。
2、創建時間、更新時間
DEFAULT CURRENT_TIMESTAMP --表示當插入數據的時候,該字段默認值為當前時間 ON UPDATE CURRENT_TIMESTAMP --表示每次更新這條數據的時候,該字段都會更新成當前時間
這兩個操作是mysql數據庫本身在維護,可以根據這個特性來生成【創建時間】和【更新時間】兩個字段,且不需要代碼來維護。
CREATE TABLE `test` ( `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、Python插入數據庫時字符串中含有單引號或雙引號報錯
可以使用 pymysql.escape_string() 轉換
if type(str_content) is str: str_content = pymysql.escape_string(str_content)
4、獲取單個表的字段名和信息的方法
import MySQLdb as mdb import sys #獲取數據庫的鏈接對象 con = mdb.connect('localhost', 'root', 'root', 'test') with con: #獲取普通的查詢 cursor cur = con.cursor() cur.execute("SELECT * FROM Writers") rows = cur.fetchall() #獲取連接對象的描述信息 desc = cur.description print 'cur.description:',desc #打印表頭,就是字段名字 print "%s %3s" % (desc[0][0], desc[1][0]) for row in rows: #打印結果 print "%2s %3s" % row
5、從數據庫中把圖片讀出來
import MySQLdb as mdb import sys try: #連接 mysql,獲取連接的對象 conn = mdb.connect('localhost', 'root', 'root', 'test'); cursor = conn.cursor() #執行查詢該圖片字段的 SQL cursor.execute("SELECT Data FROM Images LIMIT 1") #使用二進制寫文件的方法,打開一個圖片文件,若不存在則自動創建 fout = open('image.png','wb') #直接將數據如文件 fout.write(cursor.fetchone()[0]) #關閉寫入的文件 fout.close() #釋放查詢數據的資源 cursor.close() conn.close() except IOError, e: #捕獲 IO 的異常 ,主要是文件寫入會發生錯誤 print "Error %d: %s" % (e.args[0],e.args[1]) sys.exit(1)
關于Python操作MySQL的技巧有哪些問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。