【问题标题】:How to render new line from python string to HTML template using FLASK?如何使用 FLASK 将新行从 python 字符串渲染到 HTML 模板?
【发布时间】:2020-10-08 03:17:13
【问题描述】:
message=""
@app.route("/", methods=["GET", "POST"])
def upload_file():
global message
if request.method == "POST":
    if request.files:
        data=request.files["file"]
        if data.filename == "":
            message="File doesn't have a name! <br>"
        elif allowed_file(data.filename):
            message+="File Allowed <br>"
            data.save(os.path.join(app.config["FILE_UPLOAD"], data.filename))
            message+="File Saved"
            if(validate()):
                message+="File validated! <br>"
            else: message+="Failed validation <br>"
        else:
            message+="File extension not allowed! <br>"
return render_template("ui.html",message=message)

我正在尝试使用烧瓶验证上传到我的 ui.html 模板上的文件,我想向 ui.html 发送一个关于验证状态的“消息”字符串并很好地显示它我正在尝试每当将新字符串添加到“消息”字符串时添加新行,这样当我在 ui.html 中呈现它时,会在我想要的位置添加新行。 这就是我在 ui.html 中呈现“消息”字符串的方式:

{% if message %}
     <p>{{ message }}</p>
{% endif %}

但是 ui.html 没有呈现 &lt;br&gt; 并且它正在将其打印为 ui.html 模板上的字符串。我该如何解决这个问题?我也试过&lt;br /&gt;

【问题讨论】:

    标签: python flask


    【解决方案1】:

    render html strings in flask templates中也提到过 flask 的模板引擎 (jinja2) 假定 {{ }} 内部的输入是不安全的,并且不允许在其中呈现 js 或 html。最简单的方法是使用安全过滤器来做这样的事情。

    {{ message | safe }}
    

    根据flask的文档https://flask.palletsprojects.com/en/1.1.x/templating/,还有另外两种控制自动转义行为的方法,即将HTML字符串包装在Markup object中或完全禁用自动转义,例如这个:

    {% autoescape false %}
    <p>autoescaping is disabled here
    <p>{{ will_not_be_escaped }}
    {% endautoescape %}
    

    【讨论】:

    • 很高兴知道这一点,尽管我用烧瓶提供的 flash 功能解决了这个问题。它单独打印每条消息,因此我只能在我的 HTML 文件中添加

    【解决方案2】:

    我用flask提供的flash功能解决了这个问题。它单独打印每条消息,因此我只能在我的 HTML 文件中添加&lt;p&gt;。 用于渲染的 ui.html 文件中所做的更改是:

    {% for message in get_flashed_messages() %}
          <p>{{ message }}</p>
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 2018-04-09
      • 2012-02-17
      • 2017-12-22
      • 2016-11-13
      • 1970-01-01
      相关资源
      最近更新 更多