如何使用Flask将POST传递给另一个URL

时间:2017-10-08 09:37:35

标签: python html flask

我试图从用户那里得到一些短语,当他/她按“提交”时,我想用他/她的名字将他/她重定向到另一个页面,使用Flask。这是我的Python代码:

from flask import Flask, redirect, render_template, request, session, url_for

app = Flask(__name__)

@app.route("/", methods = ["POST", "GET"])
def login():
    if request.method == "POST":
        user = request.form["name"]
        return redirect(url_for("success", name=user))
    else:
        return render_template("login.html")

@app.route("/success", methods = ["POST", "GET"])
def success():
    user = request.form.get('name')
    return render_template("success.html", name=user)

if __name__ == "__main__":
    app.run("0.0.0.0", 8080)

所以,当我去我的网站时,我会去“其他”分支并执行:“render_template(”login.html“)”。然后,如果我按提交,我进入“if”我试图将用户重定向到“success.html”。这是我的login.html:

<html>
   <body>

      <form action = "http://ide50-zahar-zagrava.cs50.io:8080/" method = "post">
         <p>Enter Name:</p>
         <p><input type = "text" name = "name" /></p>
         <p><input type = "submit" value = "submit" /></p>
      </form>

   </body>
</html>

和succes.html:

<html>
    <body>
        <h1>Hello {{ name }}!</h1>
    </body>
</html>

但是却说:“你好”它说:“Hello None”。 我的主要问题是如何将数据从一个页面传递到另一个页面? 我是Flask和Python的新手,所以我无法弄清楚出了什么问题。

1 个答案:

答案 0 :(得分:2)

来自action的{​​{1}}是错误的。您正在将表单发送到索引页面。你可以编辑它:

form

这样,您的表单将被发送到成功方法。