码迷,mamicode.com
首页 > Web开发 > 详细

4 Template层- HTML转义

时间:2018-01-24 16:55:59      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:alt   request   ret   单引号   显示效果   关闭   转义   base   png   

阅读目录

1.HTML转义

  • Django对字符串进行自动HTML转义,如在模板中输出如下值:
技术分享图片
视图代码:
def index(request):
    return render(request, ‘temtest/index2.html‘,
                  {
                      ‘t1‘: ‘<h1>hello</h1>‘
                  })
模板代码:
{{t1}}
技术分享图片

 

  • 显示效果如下图:

技术分享图片



技术分享图片
技术分享图片
技术分享图片

 技术分享图片

 

技术分享图片

2.会被自动转义的字符

  • html转义,就是将包含的html标签输出,而不被解释执行,原因是当显示用户提交字符串时,可能包含一些攻击性的代码,如js脚本
  • Django会将如下字符自动转义:
技术分享图片
< 会转换为&lt;

> 会转换为&gt;

‘ (单引号) 会转换为&#39;

" (双引号)会转换为 &quot;

& 会转换为 &amp;
技术分享图片

 

  • 当显示不被信任的变量时使用escape过滤器,一般省略,因为Django自动转义
{{ t1|escape }}

 



3.关闭转义

  • 对于变量使用safe过滤器
{{ data|safe }}

 

  • 对于代码块使用autoescape标签
{ % autoescape off %}
  {{ body }}
{ % endautoescape %}

 

  • 标签autoescape接受on或者off参数
  • 自动转义标签在base模板中关闭,在child模板中也是关闭的

 

技术分享图片

 

 

4.字符串字面值

  • 手动转义
{ { data|default:"<b>123</b>" }}

 

  • 应写为
{ { data|default:"&lt;b&gt;123&lt;/b&gt;" }}

 

 

技术分享图片

技术分享图片

 

4 Template层- HTML转义

标签:alt   request   ret   单引号   显示效果   关闭   转义   base   png   

原文地址:https://www.cnblogs.com/Bighua123/p/8341933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!