美文网首页
Django模板[HTML转义]

Django模板[HTML转义]

作者: 錦魚 | 来源:发表于2018-11-02 13:37 被阅读0次

HTML转义

  • 模板对上下文传递的字符串进行输出时,会对以下字符自动转义。
  • 小于号< 转换为 &lt;
  • 大于号> 转换为 &gt;
  • 单引号' 转换为 &#39;
  • 双引号" 转换为 &quot;
  • 与符号& 转换为 &amp;

示例

1)打开booktest/views.py文件,创建视图html_escape。
def html_escape(request):
   context={'content':'<h1>hello world</h1>'}
   return render(request,'booktest/html_escape.html',context)
2)打开booktest/urls.py文件,配置url。
url(r'^html_escape/$', views.html_escape),
3)在templates/booktest/目录下创建html_escape.html。
<html>
<head>
    <title>转义</title>
</head>
<body>
    自动转义:{{content}}
</body>
</html>
4)运行服务器,在浏览器中输入如下网址。

http: //127.0.0.1:8000/html_escape/

转义后标记代码不会被直接解释执行,而是被直接呈现,防止客户端通过嵌入js代码攻击网站.


关闭转义

  • 过滤器escape可以实现对变量的html转义,默认模板就会转义,一般省略。
    {{t1|escape}}
  • 过滤器safe:禁用转义,告诉模板这个变量是安全的,可以解释执行。
    {{data|safe}}

1)修改templates/booktest/html_escape.html代码如下。

<html>
<head>
    <title>转义</title>
</head>
<body>
    自动转义:{{content}}
<hr>
    过滤器safe关闭转义:{{content|safe}}
</body>
</html>

标签autoescape:

设置一段代码都禁用转义,接受on、off参数。

{%autoescape off%}
...
{%endautoescape%}

1)修改templates/booktest/html_escape.html代码如下。

字符串字面值对于在模板中硬编码的html字符串,不会转义。

1)修改templates/booktest/html_escape.html代码如下:
<html>
<head>
    <title>转义</title>
</head>
<body>
自动转义:{{content}}
<hr>
过滤器safe关闭转义:{{content|safe}}
<hr>
标签autoescape关闭转义:
{%autoescape off%}
    {{content}}
{%endautoescape%}
<hr>
模板硬编码不转义:{{data|default:'<b>hello</b>'}}
<hr>
模板硬编码手动转义:{{data|default:"&lt;b&gt;123&lt;/b&gt;"}}
</body>
</html>

相关文章

  • Django handy notes

    Django Handy Notes 如何关闭Django模板的自动转义 Django的模板中会对HTML标签和J...

  • Django模板-HTML转义

    HTML转义 模板对上下文传递的字符串进行输出时,会将以下字符进行转义 所谓html转义就是将 html关键字(包...

  • Django模板[HTML转义]

    HTML转义 模板对上下文传递的字符串进行输出时,会对以下字符自动转义。 小于号< 转换为 <大于号> 转换...

  • Django模板HTML转义

    HTML转义 模板对上下文传递的字符串进行输出时,会对以下字符自动转义。 小于号< 转换为 <大于号> 转换...

  • django markdown语法

    django文章markdown化 如不转义出现html标签则在模板中将 {{text}} 改成 {{text|s...

  • django的模板 - HTML转义

    Django对字符串进行自动HTML转义 会被自动转义的字符 html转义,就是将包含的html标签输出,而不被解...

  • Django 2.1.7 模板 - HTML转义

    相关篇章 Django 2.1.7 创建应用模板Django 2.1.7 配置公共静态文件、公共模板路径Djang...

  • HTML 转义

    Django 对字符串进行自动 HTML 转义,如在模板中输出如下值:视图代码: def index(reques...

  • django 模板继承  HTML转义 CSRF

    模板继承 模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量。 典型应用:网站的头部、尾...

  • 前端模板引擎Handlebars的使用总结(二)

    一、Handlebars模板的转义问题 1.模板中当使用{{ }}时,转义,输出HTML字符串当使用{{{ }}}...

网友评论

      本文标题:Django模板[HTML转义]

      本文链接:https://www.haomeiwen.com/subject/alnqxqtx.html