Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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 使用flask.g在模板之间传递值_Python_Flask - Fatal编程技术网

Python 使用flask.g在模板之间传递值

Python 使用flask.g在模板之间传递值,python,flask,Python,Flask,使用Flask,我有一个页面作为等待屏幕,直到用户在读卡器上放置RFID卡。将卡放置在读卡器上后,将用户值传递到模板中,然后用户将自动移动到另一页。我需要捕获该值(据我所知,使用flask.g)并将其传递到第二页。当前我的烧瓶views.py如下所示: @app.route('/activity', methods=['GET', 'POST']) def activity(): user = g.user location = {'mspace': 'Central Libra

使用Flask,我有一个页面作为等待屏幕,直到用户在读卡器上放置RFID卡。将卡放置在读卡器上后,将
用户
值传递到模板中,然后用户将自动移动到另一页。我需要捕获该值(据我所知,使用flask.g)并将其传递到第二页。当前我的烧瓶
views.py
如下所示:

@app.route('/activity', methods=['GET', 'POST'])
def activity():
    user = g.user
    location = {'mspace': 'Central Library'} 
    return render_template('activity.html',
                            location = location,
                            user = user)

@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
def index(): 
    global checkCheck
    print "starting"
    if request.method == 'POST':
        # print(request.data)
        checkCheck = True
        location = {'mspace': 'Central Library'} 
        user = {'nickname': request.args.get('name')}
        print "works!"
        print user['nickname']
        return render_template('index.html',
                    location = location,
                    user = user) 
    g.user = user
    return render_template('index.html', 
                            location = "test", 
                            user = 'user')

但是当我没有在放置卡片后呈现第二页时,我得到了一个错误
AttributeError:“\u AppCtxGlobals”对象没有属性“user”
-为什么第二页不能识别
g.user

您不能使用
g
在不同的请求之间传递数据;它仅对当前请求是全局的。此外,您将
g.user=user
行放在
返回
之后,所以它从未被执行过。嘿,Martijn-感谢您解释我应该用什么来存储一个可以跨模板使用的变量?使用会话来跨请求存储数据。嘿,Martijn-在您第一次发表评论之后,我实际上开始了这条路,但后来发现自己陷入了一个新的僵局()