Python 如何在请求后将参数传递给?
我是Flask的新手,正在学习Python 如何在请求后将参数传递给?,python,flask,Python,Flask,我是Flask的新手,正在学习@app.after_request和@app.teardown_appcontext。我有一个用于oauthlib的参数,data(这是一个对象) 执行此视图(以及许多其他视图)后,我希望更新数据库,但需要访问变量data。如何在请求后使用@app.after或@app.teardown\u appcontext @app.after_request def record_ip(response): client = data.client # needs
@app.after_request
和@app.teardown_appcontext
。我有一个用于oauthlib的参数,data
(这是一个对象)
执行此视图(以及许多其他视图)后,我希望更新数据库,但需要访问变量data
。如何在请求后使用@app.after
或@app.teardown\u appcontext
@app.after_request
def record_ip(response):
client = data.client # needs access to "data"
.... log stuff in my database ...
return response
您可以将对象添加到: 全局
flask.g
上下文是线程安全的,并且与当前请求绑定;引述:
根据需要创建和销毁应用程序上下文它从不在线程之间移动,也不会在请求之间共享。
这不管用吗<代码>来自flask导入请求@LukasGraf:global
请求
对象在这里不是一回事;看看这些。@MartijnPieters是的,我在读你的答案时才意识到这一点。我不知怎的跳过了oauth部分。对不起@LukasGraf,我应该叫它其他的东西,比如数据。为了避免混淆,我将更新这个问题。
@app.after_request
def record_ip(response):
client = data.client # needs access to "data"
.... log stuff in my database ...
return response
from flask import g
@app.route('/api/me')
@oauth.require_oauth()
def me(req):
user = req.user
g.oauth_request = req
return jsonify(username=user.username)
@app.after_request
def record_ip(response):
req = g.get('oauth_request')
if req is not None:
client = req.client # needs access to "req"
# .... log stuff in my database ...
return response