python - 如何将 Peewee 与 Tornado 完美结合使用

标签 python tornado peewee

我在我的tornado webapp中使用peewee,当我阅读peewee的文档时,我发现:

添加请求 Hook

构建 Web 应用程序时,正确管理数据库连接非常重要。在本节中,我将描述如何向 Web 应用程序添加 Hook 以确保正确处理数据库连接。 这些步骤将确保无论您使用的是简单的 SQLite 数据库还是多个 Postgres 连接池,peewee 都能正确处理连接。

http://docs.peewee-orm.com/en/latest/peewee/database.html

在内部,它告诉Flask Django Bottle如何使用它,除了Tornado的解决方案

不知道 Tornado 有什么简单的方法可以解决这个问题吗?或者这根本不重要?

最佳答案

想法是,您希望在请求开始时打开连接,并在请求完成(返回响应)时关闭连接。

要做到这一点,您似乎可以对 RequestHandler 进行子类化:

from tornado.web import RequestHandler

db = SqliteDatabase('my_db.db')

class PeeweeRequestHandler(RequestHandler):
    def prepare(self):
        db.connect()
        return super(PeeweeRequestHandler, self).prepare()

    def on_finish(self):
        if not db.is_closed():
            db.close()
        return super(PeeweeRequestHandler, self).on_finish()

关于python - 如何将 Peewee 与 Tornado 完美结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872311/

相关文章:

Python 类型提示联合

python - 如何在正在移动的二进制图像中找到点的中心

python - Tornado 的多个身份验证选项

python - Peewee:有限制地删除

python - 如何让 Flask-admin 允许使用 peewee 模型内联编辑 PostgreSQL JSONB 字段?

python - 如何限制对象的创建

python - 如何在python中批量加载数据到hbase

python - 如何遍历从 Python/Tornado 处理程序传递到 Tornado 模板的字典?

python - 使用 Tornado 通过 websocket 发送 cookie

python - Peewee Flask 尝试从 BooleanField 返回数据