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

How to use Peewee with Tornado perfectly

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

添加请求挂钩

构建网络应用程序时,正确管理数据库连接非常重要。在本节中,我将介绍如何将挂钩添加到您的 Web 应用程序以确保正确处理数据库连接。 这些步骤将确保无论您使用的是简单的 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()