亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Python操作MySQL的小技巧

 更新時(shí)間:2020年09月10日 14:44:15   作者:新碼農(nóng)  
這篇文章主要介紹了使用Python操作MySQL的小技巧,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

1、獲取插入數(shù)據(jù)的主鍵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()

通過(guò)db.insert_id()方法可以獲取插入數(shù)據(jù)的主鍵id, 注意一定要在commit之前獲取,否則返回0。

2、創(chuàng)建時(shí)間、更新時(shí)間

DEFAULT CURRENT_TIMESTAMP
--表示當(dāng)插入數(shù)據(jù)的時(shí)候,該字段默認(rèn)值為當(dāng)前時(shí)間
 
ON UPDATE CURRENT_TIMESTAMP
--表示每次更新這條數(shù)據(jù)的時(shí)候,該字段都會(huì)更新成當(dāng)前時(shí)間

這兩個(gè)操作是mysql數(shù)據(jù)庫(kù)本身在維護(hù),可以根據(jù)這個(gè)特性來(lái)生成【創(chuàng)建時(shí)間】和【更新時(shí)間】?jī)蓚€(gè)字段,且不需要代碼來(lái)維護(hù)。

CREATE TABLE `test` (
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時(shí)間'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、Python插入數(shù)據(jù)庫(kù)時(shí)字符串中含有單引號(hào)或雙引號(hào)報(bào)錯(cuò)

可以使用 pymysql.escape_string() 轉(zhuǎn)換

if type(str_content) is str:
  str_content = pymysql.escape_string(str_content)

4、獲取單個(gè)表的字段名和信息的方法

import MySQLdb as mdb
import sys
#獲取數(shù)據(jù)庫(kù)的鏈接對(duì)象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取普通的查詢 cursor
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall()
#獲取連接對(duì)象的描述信息
desc = cur.description
print 'cur.description:',desc
#打印表頭,就是字段名字
print "%s %3s" % (desc[0][0], desc[1][0])
for row in rows:
#打印結(jié)果
print "%2s %3s" % row

5、從數(shù)據(jù)庫(kù)中把圖片讀出來(lái)

import MySQLdb as mdb
import sys
try:
#連接 mysql,獲取連接的對(duì)象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#執(zhí)行查詢?cè)搱D片字段的 SQL
cursor.execute("SELECT Data FROM Images LIMIT 1")
#使用二進(jìn)制寫文件的方法,打開一個(gè)圖片文件,若不存在則自動(dòng)創(chuàng)建
fout = open('image.png','wb')
#直接將數(shù)據(jù)如文件
fout.write(cursor.fetchone()[0])
#關(guān)閉寫入的文件
fout.close()
#釋放查詢數(shù)據(jù)的資源
cursor.close()
conn.close()
except IOError, e:
#捕獲 IO 的異常 ,主要是文件寫入會(huì)發(fā)生錯(cuò)誤
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

以上就是使用Python操作MySQL的小技巧的詳細(xì)內(nèi)容,更多關(guān)于python 操作MySQL的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論