flask:跨视图函数传递参数

时间:2014-04-14 20:10:41

标签: python ajax flask

如何在flask

中的视图之间传递变量

编辑:为了说明的目的,假设我有一个在user()中设置的变量id。当然这是一个局部变量,对user_add()不可见。有没有办法以一种很好的方式用user_add传递这个值来保留局部性?

我在视图中有以下代码:

@app.route('/users', methods=['GET', 'POST'])
def user():
    ...
    var = setvar()
    ---
    return render_template('users.html')

@app.route('/users/add', methods=['GET', 'POST'])
def user_add():
    if request.method == 'POST':
        ...
        var = #somehow get id here
        ---
        return 'user added'

我正在为“/ user / add”

做一个ajax帖子
$.ajax({
    ...
    type: "POST"
    url: "/user/add"
    data: data,
    ...
});

编辑:将ID更改为var以获得美学

1 个答案:

答案 0 :(得分:7)

我不确定确切的用例是什么,但也许可以查看Sessions

您可能会执行以下操作:

from flask import session

@app.route('/users', methods=['GET', 'POST'])
def user():
    ...
    session['var'] = setvar()
    ---
    return render_template('users.html')

@app.route('/users/add', methods=['GET', 'POST'])
def user_add():
    if request.method == 'POST':
        ...
        var = session['var']
        ---
        return 'user added'

请查看文档以确保您正确使用它。以上仅用于说明基本概念。