如何将 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()
我在我的 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()