2012-03-14 150 views
3

最近更新扭曲從11到12版本。發現twisted.enterprise.util模塊不再存在。棄用twisted.enterprise.util

我曾經這樣做:

from twisted.enterprise import adbapi, util as dbutil 

query = "select userid, password from user where username = %s" % (
     dbutil.quote(credentials.username, "char")) 

現在我們需要使用第三方庫?

回答

4

正確的方法是「綁定參數」。這使SQL獨立於 數據,並刪除由於錯誤引用而導致的整個錯誤類別。 使用綁定參數的方式是將SQL字符串作爲獨立參數 從SQL數據中傳遞。使用DB-API 2.0,這意味着類似:

cursor.execute("SELECT foo FROM bar WHERE baz = ?", (3,)) 

使用ADBAPI,這意味着一些非常相似: 「?」

connpool.runQuery("SELECT foo FROM bar WHERE baz = ?", (3,)) 

不同的數據庫適配器使用不同的語法爲部分。 DB-API 2.0模塊的「paramstyle」屬性告訴你特定模塊使用什麼語法。有關詳細信息,請參閱DB-API 2.0 PEP (http://www.python.org/dev/peps/pep-0249/)。

來源:http://twistedmatrix.com/pipermail/twisted-python/2009-March/019268.html