使用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 mdbimport sys#獲取數據庫的鏈接對象con = mdb.connect(’localhost’, ’root’, ’root’, ’test’)with con:#獲取普通的查詢 cursorcur = con.cursor()cur.execute('SELECT * FROM Writers')rows = cur.fetchall()#獲取連接對象的描述信息desc = cur.descriptionprint ’cur.description:’,desc#打印表頭,就是字段名字print '%s %3s' % (desc[0][0], desc[1][0])for row in rows:#打印結果print '%2s %3s' % row
5、從數據庫中把圖片讀出來
import MySQLdb as mdbimport systry:#連接 mysql,獲取連接的對象conn = mdb.connect(’localhost’, ’root’, ’root’, ’test’);cursor = conn.cursor()#執行查詢該圖片字段的 SQLcursor.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的小技巧的詳細內容,更多關于python 操作MySQL的資料請關注好吧啦網其它相關文章!
相關文章:
