我在Flask中走了两条路。我想将变量从另一条路线发送到一条路线,但我不希望它被重定向到该路线。
@app.route('/')
def index():
name = 'Hello'
return redirect(url_for('a', name=name)
@app.route('/<name>')
def a(name):
return name
我想要的是我的索引不应重定向到'a'
路由。 'a'
路线仅在我手动输入时才有效。
答案 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。