摘要:還有一點(diǎn),有的教程說應(yīng)該設(shè)置來關(guān)閉自動(dòng)提交事務(wù),這應(yīng)該也就是我不要的原因了吧。這種更改數(shù)據(jù)庫的方式都要進(jìn)行,但是這類查詢操作就沒有必要了,因?yàn)椴粫?huì)更改到數(shù)據(jù)庫。
準(zhǔn)備工作
首先要新建一個(gè)數(shù)據(jù)庫python和一張數(shù)據(jù)表user
$ mysql -u root -p > create database python; > use database python; > create table user( username varchar(32), password varchar(32) );連接到數(shù)據(jù)庫
In [1]: import MySQLdb # 獲取connection In [2]: conn = MySQLdb.connect( host = "127.0.0.1", port = 3306, user = "root", passwd ="root", db = "python", charset = "utf8" ) # 獲取到cusor,所有的操作都要通過cursor進(jìn)行 In [3]: cursor = conn.cursor()插入操作
In [4]: sql = "insert into user (username, password) values(%s, %s)" # 這里我們將要插入的數(shù)據(jù)存入一個(gè)tuple當(dāng)中 In [5]: cursor.execute(sql, ("zxy", "123") Out[5]: 1L
因?yàn)檫@里是要插入數(shù)據(jù),所以要commit,但是我不進(jìn)行commit好像也沒有問題。我查閱到的資料的解釋是,當(dāng)curosr.execute()執(zhí)行成功的時(shí)候,執(zhí)行conn.commit(),但是執(zhí)行失敗的時(shí)候,就執(zhí)行conn.roolback(),跟hibernate一樣,應(yīng)該也是進(jìn)行事務(wù)的回滾。還有一點(diǎn),有的教程說應(yīng)該設(shè)置conn.autocommit(False)來關(guān)閉自動(dòng)提交事務(wù),這應(yīng)該也就是我不要commit的原因了吧。insert/update/delete這種更改數(shù)據(jù)庫的方式都要進(jìn)行commit,但是select這類查詢操作就沒有必要了,因?yàn)閟elect不會(huì)更改到數(shù)據(jù)庫。
In [6]: conn.commit() # 我這里省去了commit,好像也行 In [7]: cursor.execute(sql, ("yd", "456")) Out[7]: 1L查詢操作
In [8]: sql = "select * from user" In [9]: cursor.execute(sql) Out[9]: 2L # fetchall是得到所有的結(jié)果,你以可以使用fetchone()來只查詢一條數(shù)據(jù),或者fetchmany(size=n)來指定查詢的條數(shù) In [10]: result = cursor.fetchall() In [11]: cursor.fetchall() Out[11]: ((u"zxy", u"123"), (u"yd", u"456")) # 還可以打印出查詢到的條數(shù)以用來優(yōu)雅的遍歷 In [12]: print(cursor.rowcount) 2 # 最后記得關(guān)閉conn和cursor In [13]: cursor.close() In [14]: conn.close()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/38391.html
摘要:用選擇要操作的數(shù)據(jù)庫,然后通過指針就可以操作這個(gè)數(shù)據(jù)庫了。這樣就在這個(gè)數(shù)據(jù)庫中創(chuàng)建了一個(gè)名為的表這是查看表的方式。樹欲靜而風(fēng)不止,小偷在行動(dòng)。所以,要特別提醒諸位注意。 通過python操作數(shù)據(jù)庫的行為,除了能夠完成前面兩講中的操作之外(當(dāng)然,那是比較常用的),其實(shí)任何對(duì)數(shù)據(jù)庫進(jìn)行的操作,都能夠通過python-mysqldb來實(shí)現(xiàn)。 建立數(shù)據(jù)庫 在《用python操作數(shù)據(jù)庫(1)...
摘要:用來編寫網(wǎng)站,必須要能夠通過操作數(shù)據(jù)庫,所謂操作數(shù)據(jù)庫,就是通過實(shí)現(xiàn)對(duì)數(shù)據(jù)的連接,以及對(duì)記錄字段的各種操作。交互模式下操作數(shù)據(jù)庫之連接數(shù)據(jù)庫操作數(shù)據(jù)庫的前提是先有數(shù)據(jù)庫。先建立一個(gè)數(shù)據(jù)庫。 用Python來編寫網(wǎng)站,必須要能夠通過python操作數(shù)據(jù)庫,所謂操作數(shù)據(jù)庫,就是通過python實(shí)現(xiàn)對(duì)數(shù)據(jù)的連接,以及對(duì)記錄、字段的各種操作。上一講提到的那種操作方式,是看官直接通過交互模式來操...
摘要:使用的默認(rèn)已安裝先安裝安裝的模塊安裝編寫測試 使用的ubuntu 15.04Python 2.7(默認(rèn)已安裝) 先安裝mysqlsudo apt-get install mysql-server 安裝MySQLdb的模塊sudo apt-get install python-mysqldb 安裝Flasksudo easy_install Flask 編寫測試: #-*- codin...
閱讀 3440·2021-11-22 09:34
閱讀 2995·2021-10-09 09:43
閱讀 1529·2021-09-24 09:47
閱讀 2265·2019-08-30 12:53
閱讀 1067·2019-08-29 14:00
閱讀 3502·2019-08-29 13:17
閱讀 2341·2019-08-28 18:00
閱讀 1355·2019-08-26 12:00