从Python代码接收的HTML表代码未呈现[重复]

hc8w905p  于 2022-12-28  发布在  Python
关注(0)|答案(2)|浏览(132)
    • 此问题在此处已有答案**:

Passing HTML to template using Flask/Jinja2(7个答案)
4天前关闭。
我用Python代码将HTML代码写入HTML文件,这个HTML文件在一个名为load1的变量中接收代码。

<div id="load" class="load">
    
      {{ load1 }}
     
 </div>

在浏览器上,它显示以下内容:

查看实际的HTML文件,我看到以下内容:

括号<>显示为&lt;&gt;
作为最终结果,我怎么才能真正看到一个表而不是HTML代码呢?

nbnkbykc

nbnkbykc1#

这是由于自动转义,它是为你自动转义特殊字符的概念。HTML(或XML,因此XHTML)意义上的特殊字符是&,〉,〈,“以及'。
有三种方法可以实现这一点:

  • 在Python代码中,在将HTML字符串传递给模板之前,将其 Package 在一个Markup对象中,这通常是推荐的方法。
  • 在模板中,使用|一个安全过滤器,用于将字符串显式标记为安全HTML({{ myvariable|安全}})
  • 暂时关闭自动逃生系统。

要禁用模板中的自动转义系统,可以使用{% autoescape %}块:

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

Source

axzmvihb

axzmvihb2#

默认情况下,Flask会保护变量中的所有HTML。您需要使用{% autoescape xxx %}命令关闭自动转义。
以下是使用说明:
https://flask.palletsprojects.com/en/2.2.x/templating/

相关问题