Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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 在此上下文中,jinja值是如何返回的?_Python_Html_Flask_Jinja2_Return Value - Fatal编程技术网

Python 在此上下文中,jinja值是如何返回的?

Python 在此上下文中,jinja值是如何返回的?,python,html,flask,jinja2,return-value,Python,Html,Flask,Jinja2,Return Value,我刚开始学习jinja/flask,到目前为止理解力相对较低。如果有人能帮上忙,那就太好了。我在理解如何访问变量的值时遇到了一些问题。我做了一次徒劳的尝试,但没有成功。当我点击我的“提交”按钮试图让我的名字打印在“欢迎”之后的下一页时,我会出错 好的,我有一个带有表单的索引页面,我想在POST页面上返回提交的值,如下所示。但是,我在语法方面遇到了问题。这是使用python/jinja2/html在Pycharm和Flask中构建的。我相信这就是我的困惑所在 编辑_1:我知道这个主题之前有几篇帖子

我刚开始学习jinja/flask,到目前为止理解力相对较低。如果有人能帮上忙,那就太好了。我在理解如何访问变量的值时遇到了一些问题。我做了一次徒劳的尝试,但没有成功。当我点击我的“提交”按钮试图让我的名字打印在“欢迎”之后的下一页时,我会出错

好的,我有一个带有表单的索引页面,我想在POST页面上返回提交的值,如下所示。但是,我在语法方面遇到了问题。这是使用python/jinja2/html在Pycharm和Flask中构建的。我相信这就是我的困惑所在

编辑_1:我知道这个主题之前有几篇帖子,但我似乎无法应用这些帖子所解释的内容。事实上,我这里的代码来自我在这里找到的另一篇文章

以下是Python文件:

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>