【问题标题】:How to use Peewee with Tornado perfectly如何完美地使用 Peewee 和 Tornado
【发布时间】:2015-06-18 04:07:48
【问题描述】:

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

添加请求挂钩

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

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

在里面,它告诉 Flask Django Bottle...除了 Tornado 的解决方案之外如何使用它

我想知道龙卷风解决这个问题的简单方法吗?或者这根本不重要?

【问题讨论】:

  • 我已经回答了您的问题并更新了文档。
  • 谢谢,对我有很大帮助

标签: python tornado peewee


【解决方案1】:

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

要做到这一点,看起来你可以继承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()

【讨论】:

  • 假设我使用的是 PooledMySQLDatabase 而不是 SQLite。我是否需要更改此实现中的任何内容以反映连接来自池的事实?
猜你喜欢
  • 2020-06-30
  • 1970-01-01
  • 2013-12-02
  • 2021-08-21
  • 2022-01-25
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多