Peewee - 与 Web 框架集成
Peewee 可以与大多数 Python Web 框架 API 无缝协作。 每当 Web 服务器网关接口 (WSGI) 服务器收到来自客户端的连接请求时,就会建立与数据库的连接,然后在传递响应后关闭连接。
在基于 Flask 的 Web 应用程序中使用时,连接对 @app.before_request 装饰器有影响,并在 @app.teardown_request 上断开连接。
from flask import Flask from peewee import * db = SqliteDatabase('mydatabase.db') app = Flask(__name__) @app.before_request def _db_connect(): db.connect() @app.teardown_request def _db_close(exc): if not db.is_closed(): db.close()
Peewee API 也可以在 Django 中使用。 为此,在 Django 应用程序中添加一个中间件。
def PeeweeConnectionMiddleware(get_response): def middleware(request): db.connect() try: response = get_response(request) finally: if not db.is_closed(): db.close() return response return middleware
Django 的 settings 模块中添加了中间件。
# settings.py MIDDLEWARE_CLASSES = ( # Our custom middleware appears first in the list. 'my_blog.middleware.PeeweeConnectionMiddleware', #followed by default middleware list. .. )
Peewee 可以轻松地与其他框架一起使用,例如 Bottle、Pyramid 和 Tornado 等。