我正在使用Connexion构建API,所以我使用的是app = connexion.FlaskApp(__name__)
而不是Flask(__name__)
。
我想添加before_request
和after_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方法?
答案 0 :(得分:0)
Connexion实例将Flask实例存储为app
attribute。您仍然可以通过它使用Flask可用的所有功能。
app = connexion.FlaskApp(__name__)
@app.app.before_request
def open_db():
...
Connexion本身就是这样做的,例如,他们的route
方法传递给了self.app.route
。