如何在`redirect(url_for())`中传递变量

时间:2019-11-07 18:25:26

标签: python-3.x flask

我正在尝试在python中使用flask重定向到另一个URL时传递一个变量,并得到name var not defined

这是我在做什么:

@app.route('/')
def root():
    delay = randint(0, 5)
    time.sleep(delay)
    return redirect(url_for('first_hop', delay=delay))

根据其他答案,这似乎是传递变量的方法。

@app.route('/first_hop')
def first_hop():
    x = delay
    print(delay)
    return redirect(url_for('second_hop'))

但是在这里,我不知道如何获得它。我必须将变量设置为全局变量吗?

错误在下面。

  

NameError:未定义名称“延迟”

1 个答案:

答案 0 :(得分:1)

first_hop中,可以使用request.args.get('delay')获得参数。

@app.route('/first_hop')
def first_hop():
    x = request.args.get('delay')
    print(x)
    return redirect(url_for('second_hop'))