我使用在Python SQLObject的。我连接到数据库以

conn = connectionForURI(connStr)
conn.makeConnection()

这个成功,我可以做查询的连接:

g_conn = conn.getConnection()
cur = g_conn.cursor()
cur.execute(query)
res = cur.fetchall()

此按预期工作。然而,我还定义了一些类,e.g:

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以使其工作过,但我怎么得到它的工作,如果我不这样做呢?

有帮助吗?

解决方案

务必:

from sqlobject import sqlhub, connectionForURI

sqlhub.processConnection = connectionForURI(connStr)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top