gpt4 book ai didi

python - Flask - 如何获取导致表单的页面的 URL?

转载 作者:行者123 更新时间:2023-11-28 00:45:57 24 4
gpt4 key购买 nike

如果 2 个不同的 URL 指向相同的表单,您如何确定请求表单的 URL?

在 URL "/page1""/page2" 上,有一个“添加”按钮,它指向具有相同 URL 的相同表单,"/form1".

如果 "/page1" 指向表单页面,那么我想在提交表单后重定向到 "/page1",同样对于 "/page2".

这是我试过的代码:

@app.route("/page1", methods = ['GET', 'POST'])
def page1():

# Do something

return render_template("page1.html", title = "Page 1")


@app.route("/page2", methods = ['GET', 'POST'])
def page1():

# Do something

return render_template("page2.html", title = "Page 1")


@app.route("/form1", methods = ['GET', 'POST'])
def form1():

form = SomeForm()
# Do something

if form.validate_on_submit():
if request.url == "http://127.0.0.1:5000/page1":
return(redirect(url_for('page1'))

elif request.url == "http://127.0.0.1:5000/page2":
return(redirect(url_for('page2'))

return render_template("form1.html", title = "Page 1", form = form)

但我似乎误解了 request.url 的作用,因为它返回表单所在的 URL。

那么,应该用什么方法来判断是page1还是page2引出了表单呢?谢谢。

最佳答案

找到解决方案。看起来您需要使用 request.referrer

@app.route("/form1", methods = ['GET', 'POST'])
def form1():

form = SomeForm()
# Do something

# Use request.referrer before validation.
prev_url = request.referrer

if form.validate_on_submit():
if request.url == "http://127.0.0.1:5000/page1":
return(redirect(url_for('page1'))

elif request.url == "http://127.0.0.1:5000/page2":
return(redirect(url_for('page2'))

return render_template("form1.html", title = "Page 1", form = form)

关于python - Flask - 如何获取导致表单的页面的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50544703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com