我试图从用户那里得到一些短语,当他/她按“提交”时,我想用他/她的名字将他/她重定向到另一个页面,使用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的新手,所以我无法弄清楚出了什么问题。
答案 0 :(得分:2)
来自action
的{{1}}是错误的。您正在将表单发送到索引页面。你可以编辑它:
form
这样,您的表单将被发送到成功方法。