Python 在此上下文中,jinja值是如何返回的?
我刚开始学习jinja/flask,到目前为止理解力相对较低。如果有人能帮上忙,那就太好了。我在理解如何访问变量的值时遇到了一些问题。我做了一次徒劳的尝试,但没有成功。当我点击我的“提交”按钮试图让我的名字打印在“欢迎”之后的下一页时,我会出错 好的,我有一个带有表单的索引页面,我想在POST页面上返回提交的值,如下所示。但是,我在语法方面遇到了问题。这是使用python/jinja2/html在Pycharm和Flask中构建的。我相信这就是我的困惑所在 编辑_1:我知道这个主题之前有几篇帖子,但我似乎无法应用这些帖子所解释的内容。事实上,我这里的代码来自我在这里找到的另一篇文章 以下是Python文件:Python 在此上下文中,jinja值是如何返回的?,python,html,flask,jinja2,return-value,Python,Html,Flask,Jinja2,Return Value,我刚开始学习jinja/flask,到目前为止理解力相对较低。如果有人能帮上忙,那就太好了。我在理解如何访问变量的值时遇到了一些问题。我做了一次徒劳的尝试,但没有成功。当我点击我的“提交”按钮试图让我的名字打印在“欢迎”之后的下一页时,我会出错 好的,我有一个带有表单的索引页面,我想在POST页面上返回提交的值,如下所示。但是,我在语法方面遇到了问题。这是使用python/jinja2/html在Pycharm和Flask中构建的。我相信这就是我的困惑所在 编辑_1:我知道这个主题之前有几篇帖子
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/username", methods=['POST', 'GET'])
def username():
if request.method == 'POST':
user = request.form
return render_template("username.html", username=user)
return print("Something went wrong...smash your computer!")
if __name__ == '__main__':
app.run(debug=True)
以下是索引文件,其中包含我希望获取用户名的表单:
...
<div id="wrapper">
<div id="title_head">
<p class="title"> Gauntlet </p>
</div>
<div id="working_area">
<form action = "http://localhost:5000/username" method = "POST">
<p>Enter Username: <input type = "text" name = "Name" /></p>
<p><input type = "submit" value = "SUBMIT" /></p>
</form>
</div>
</div>
</body>
</html>
。。。
挑战
输入用户名:
最后,这里是用户名发布页面(我将在这里包括相关部分):
。。。
挑战
{用户名%中的用户为%1}
欢迎,{{username.user}
{%endfor%}
问题在于用于解析表单数据的代码(flask)。您需要提供输入数据的表单元素的键
将user=request.form['Name']
添加到代码中,您将在变量username中获得所需的值。然后您可以执行以下操作:
return render_template("username.html", username=user)
首先,将user=request.form
更改为username=request.form[“Name”]
然后,将返回呈现模板(“username.html”,username=user)
更改为呈现模板(“username.html”,username=username)
最后,修改username.html
的模板文件:
...
<body>
<div id="wrapper">
<div id="title_head">
<p class="title"> Gauntlet </p>
</div>
<div id="working_area">
<p>Welcome, {{ username }}</p>
</div>
</div>
</body>
。。。
挑战
欢迎,{{username}}
@stamaimer正常。我明白了。我不太熟悉jinja模板引擎。OP可以改进模板。在另一个模板引擎上,我可以使用username.user,但这显然不是问题的一部分。我需要更改.py文件中的分配吗?`user=request.form[“Name”]`到`username=request.form[“Name”]?`EDIT:回答了我自己的问题。对
...
<body>
<div id="wrapper">
<div id="title_head">
<p class="title"> Gauntlet </p>
</div>
<div id="working_area">
<p>Welcome, {{ username }}</p>
</div>
</div>
</body>