Устаревший twisted.enterprise.util - PullRequest
3 голосов
/ 14 марта 2012

Недавно обновлено Twisted с 11 на 12 версию. Обнаружено, что модуль 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"))

Теперь, что нам нужно для использования сторонней библиотеки?

1 Ответ

4 голосов
/ 14 марта 2012

Правильный путь - с помощью «параметров привязки». Это держит 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,))

Различные адаптеры базы данных используют разные синтаксисы для "?" часть. Атрибут `paramstyle´ модуля DB-API 2.0 сообщает, какой синтаксис конкретный модуль использует. Смотрите DB-API 2.0 PEP (http://www.python.org/dev/peps/pep-0249/) для деталей.

Источник: http://twistedmatrix.com/pipermail/twisted-python/2009-March/019268.html

...