使用 Connexion 时访问像 before_request 这样的 Flask 方法

Den*_*hou 3 python flask connexion

我正在使用 Connexion 构建 API,所以我使用的app = connexion.FlaskApp(__name__)是代替而不是Flask(__name__).

我想补充before_requestafter_request处理程序来打开和关闭数据库连接。然而,由于app是一个connexion.FlaskApp对象,这些装饰器方法不存在。

@app.before_request
def before_request():
    g.db = models.db
    g.db.connection()


@app.after_request
def after_request():
    g.db.close()
Run Code Online (Sandbox Code Playgroud)

before_request当我使用 Connexion 时,如何使用和其他 Flask 方法?

dav*_*ism 6

Connexion 实例将 Flask 实例存储为app属性。你仍然可以通过它使用 Flask 可用的所有东西。

app = connexion.FlaskApp(__name__)

@app.app.before_request
def open_db():
    ...
Run Code Online (Sandbox Code Playgroud)

Connexion 本身就是这样做的,例如他们的route方法传递给self.app.route.