3

我正在使用 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()

使用 Connexion 时如何使用before_request其他 Flask 方法?

4

1 回答 1

6

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

app = connexion.FlaskApp(__name__)

@app.app.before_request
def open_db():
    ...

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

于 2018-10-12T20:45:07.417 回答