如果x = ohio
我想将用户重定向到/ weather / ohio
我能上班的只有/ weather /?x = ohio
我正在这样做,因此将运行第二条路线@ app.route(“ / weather /”)。我不确定我缺少什么。这是加载/ weather / ohio的最佳方法,其中ohio是从表单加载的变量。
@app.route("/weather/", methods = ['POST', 'GET'])
def weather():
if request.method == 'POST':
x = request.form['search_location']
return redirect(url_for('weather', x=x))
#print (y)
else:
return render_template("weather.html")
如果我将x =取出,则会出现错误“ TypeError:url_for()接受1个位置参数,但给出了2个位置”
答案 0 :(得分:1)
您需要使第二个端点具有路径变量,并为url_for()
提供与该端点关联的函数的名称:
@app.route("/weather", methods = ["POST", "GET"])
def weather():
if request.method == "POST":
x = request.form["search_location"]
return redirect(url_for("weather_location", x=x))
else:
return render_template("weather.html")
@app.route("/weather/<x>")
def weather_location(x):
return "It's always sunny in {}".format(x)
看一下this other question可能会更清楚一些。
答案 1 :(得分:0)
它使用关键字参数作为变量:
url_for('add', variable=x)
答案 2 :(得分:0)
如果我正确理解了您的问题,您想要一条动态路线吗?
在这里https://www.tutorialspoint.com/flask/flask_variable_rules.htm
@app.route("/weather/<variable>", methods = ['POST', 'GET'])