Tornado adbapi回调未运行

2024-10-05 12:18:50 发布

您现在位置:Python中文网/ 问答频道 /正文

恐怕我发现很难在twisted中使用sqlite3 ConnectionPools的adbapi接口。在

我已经在一个我命名的文件中初始化了我的池数据库公司名称:

from twisted.enterprise import adbapi 

pool = adbapi.ConnectionPool("sqlite3", db=config.db_file)
pool.start()


def last(datatype, n):
    cmd = "SELECT * FROM %s ORDER BY Timestamp DESC LIMIT %i" % (datatype, n)
    return pool.runQuery(cmd)

那么,我要进口数据库并在特定的路由处理程序中使用它。不幸的是,似乎从未触发回调。datatype已打印,但{}从未打印。在

^{pr2}$

有什么想法吗?在


Tags: 文件from名称cmd数据库dbtwisted公司
1条回答
网友
1楼 · 发布于 2024-10-05 12:18:50

混合龙卷风和扭曲需要特别注意。在整个程序中执行的第一行中,请尝试以下操作:

import tornado.platform.twisted
tornado.platform.twisted.install()

然后,要启动服务器:

^{pr2}$

现在的情况是,你启动了龙卷风IOLoop,但你从来没有启动过扭曲的反应堆。 Twisted SQLite连接在运行查询时开始IO操作,但是由于Reactor没有运行,所以操作永远不会完成。为了让IOLoop和Reactor共享您的进程,您必须在另一个之上运行其中一个。Tornado提供了一个兼容层,允许您这样做。在

相关问题 更多 >

    热门问题