我正在做一個教程,遇到了一個處理sqlite3連接的方法, 然後我研究了WITH關鍵字,發現它是另一種嘗試,除了最後處事方式在python中使用sqlite3並加上「WITH」關鍵字
有人說,在文件處理的情況下,「用」自動處理文件的結束,我想與連接類似的zetcode教程說: -
「隨着使用關鍵字,Python解釋器會自動釋放資源,並提供錯誤處理。「 http://zetcode.com/db/sqlitepythontutorial/
,所以我認爲這將是很好用的搬運東西這種方式,但我無法弄清楚,爲什麼這兩個(內部範圍和外部範圍)語句的工作?不應該釋放連接?
import sqlite3
con = sqlite3.connect('test.db')
with con:
cur = con.cursor()
cur.execute('SELECT 1,SQLITE_VERSION()')
data = cur.fetchone()
print data
cur.execute('SELECT 2,SQLITE_VERSION()')
data = cur.fetchone()
print data
其輸出
(1, u'3.6.21')
(2, u'3.6.21')
我不知道究竟是什麼WITH是在這裏做(或不一般的),所以,如果你請詳細說明了TRY CATCH使用與在這方面。
而且應該在每個查詢中打開和關閉連接嗎? (我正在一個函數裏面提出查詢,我每次都用一個參數調用函數)這是否是一個好習慣?
閱讀:http://docs.python.org/2/library/sqlite3.html#using-the-connection-as-一個上下文管理器 - 應該解釋你的問題 –