【问题标题】:sqlobject: No connection has been defined for this thread or processsqlobject: 没有为此线程或进程定义连接
【发布时间】:2010-06-08 20:11:44
【问题描述】:

我在 Python 中使用 sqlobject。我使用

连接到数据库
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 使其工作,但如果我不这样做,我该如何让它工作?

【问题讨论】:

    标签: python sql sqlobject


    【解决方案1】:

    做:

    from sqlobject import sqlhub, connectionForURI
    
    sqlhub.processConnection = connectionForURI(connStr)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 2016-06-06
      • 1970-01-01
      • 2018-04-27
      相关资源
      最近更新 更多