Flask-如何将变量发送到不同的路由而无需重定向?

时间:2018-08-25 08:09:07

标签: python flask routes

我在Flask中走了两条路。我想将变量从另一条路线发送到一条路线,但我不希望它被重定向到该路线。

@app.route('/')
def index():
    name = 'Hello'
    return redirect(url_for('a', name=name)

@app.route('/<name>')
def a(name):
    return name

我想要的是我的索引不应重定向到'a'路由。 'a'路线仅在我手动输入时才有效。

1 个答案:

答案 0 :(得分:3)

index()a()实际上都是函数。您可以直接给他们打电话;因此在index()中,您可以调用a(name='Hello')并返回该调用的结果:

@app.route('/')
def index():
    name = 'Hello'
    return a(name=name)

@app.route('/<name>')
def a(name):
    return name

您还可以为单个视图功能注册多个URL,包括对其中没有变量的路径使用默认值。然后,您不必自己打任何电话:

@app.route('/<name>')
@app.route('/', defaults={'name': 'Hello'})
def a(name):
    return name

匹配/ URL时,将调用a(name='Hello'),因为defaults映射设置了name

有关更多信息,请参见Flask API文档的URL Route Registrations section