Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在请求后将参数传递给?_Python_Flask - Fatal编程技术网

Python 如何在请求后将参数传递给?

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

我是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 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