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.py
MIDDLEWARE_CLASSES = (
    # Our custom middleware appears first in the list.
    'my_blog.middleware.PeeweeConnectionMiddleware',
    #followed by default middleware list.
    ..
)

Peewee 可以轻松地与其他框架一起使用,例如 Bottle、Pyramid 和 Tornado 等。