sqlobject: для этого потока или процесса не определено соединение
Я использую sqlobject в Python. Я подключаюсь к базе данных с
conn = connectionForURI(connStr)
conn.makeConnection()
Это успешно, и я могу делать запросы на соединение:
g_conn = conn.getConnection()
cur = g_conn.cursor()
cur.execute(query)
res = cur.fetchall()
Это работает как задумано. Тем не менее, я также определил некоторые классы, например:
class User(SQLObject):
class sqlmeta:
table = "gui_user"
username = StringCol(length=16, alternateID=True)
password = StringCol(length=16)
balance = FloatCol(default=0)
Когда я пытаюсь сделать запрос, используя класс:
User.selectBy(username="foo")
Я получаю исключение:
...
File "c:\python25\lib\site-packages\SQLObject-0.12.4-py2.5.egg\sqlobject\main.py", line 1371, in selectBy
conn = connection or cls._connection
File "c:\python25\lib\site-packages\SQLObject-0.12.4-py2.5.egg\sqlobject\dbconnection.py", line 837, in __get__
return self.getConnection()
File "c:\python25\lib\site-packages\SQLObject-0.12.4-py2.5.egg\sqlobject\dbconnection.py", line 850, in getConnection
"No connection has been defined for this thread "
AttributeError: No connection has been defined for this thread or process
Как определить соединение для потока? Я только что понял, что могу пройти connection
Ключевое слово, которое я могу дать conn
чтобы заставить это работать, но как мне заставить это работать, если я не должен был делать это?
1 ответ
Решение
Делать:
from sqlobject import sqlhub, connectionForURI
sqlhub.processConnection = connectionForURI(connStr)