Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask-如何获取指向表单的页面的URL?_Python_Html_Flask - Fatal编程技术网

Python Flask-如何获取指向表单的页面的URL?

Python Flask-如何获取指向表单的页面的URL?,python,html,flask,Python,Html,Flask,如果两个不同的URL指向同一个表单,您如何确定该表单的URL请求 在URL“/page1”和“/page2”上,有一个“添加”按钮,该按钮指向具有相同URL的相同表单,“/form1” 如果“/page1”指向表单页面,那么我希望在提交表单后重定向到“/page1”,同样,对于“/page2” 这是我尝试的代码: @app.route("/page1", methods = ['GET', 'POST']) def page1(): # Do something return

如果两个不同的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


那么,我应该使用什么方法来确定是第1页还是第2页导致了表单?谢谢。

找到了解决方案。看起来您需要使用
请求.推荐人

@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)