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的POST请求。
$.ajax({
...
type: "POST"
url: "/user/add"
data: data,
...
});
补充说明:为了美观,把ID改成了var。
1 个回答
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'
建议你查看一下文档,确保你使用得正确。上面的内容只是为了说明基本概念。