Django模板-HTML转义

HTML转义

模板对上下文传递的字符串进行输出时,会将以下字符进行转义

所谓html转义就是将  html关键字(包括标签,特殊字符等)  进行过滤替换。过滤替换格式如下:

(1)打开  应用/views.py文件,创建视图html_escape。

def html_escape(request):

    context={'content':'<h1>hello world</h1>'}

    return render(request,'booktest/html_escape.html',context)

(2)打开  应用/urls.py文件,配置url。

url(r'^html_escape/$', views.html_escape),

(3)在templates/booktest/目录下创建html_escape.html,写入内容

自动转义:{{content}}

(4)运行服务器,在浏览器中输入如下网址。

http://127.0.0.1:8000/html_escape/

这是因为:django的模板默认会对模板变量  进行转义,模板变量中的  “ < ”  “ > ”  分别被转义成 &lt;    &gt; 本例中的html实际上是这样的:

&lt;h1&gt;hello worl&lt;/h1&gt;

关闭转义

对于变量使用safe过滤器

{{ data|safe }}

对于代码块使用autoescape标签

{ % autoescape off %}

{{ body }}

{ % endautoescape %}

标签autoescape接受on或者off参数

自动转义标签在base模板中关闭,在child模板中也是关闭的

字符串字面值

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

模板硬编码不转义:{ { d | default:"<b>123</b>" }}

如下图

如果希望出现转义的效果,则需要手动编码转义。

{ { d | default:"&gt;b&lt;123&lt;/b&gt;" }}

如下图

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚...
    riverstation阅读 2,101评论 0 8
  • HTML表单HTML表单用于搜集用户输入HTML表单常用属性及说明:属性描述accept-charset规定在被提...
    Lv_0阅读 509评论 0 1
  • FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1...
    年轻小伙程序员阅读 3,071评论 0 5
  • 一、Django框架前言知识: 1、C/S和B/S的区别: C/S结构软件:客户端/服务端软件,即客户端要自己下载...
    月下独酌123阅读 4,643评论 0 36
  • 秋夜凄凉伴我心 无力驱散遮月云 百草枯萎凄凉景 万剑穿心断此情 悠悠岁月终聚散 岁月悠悠情难还 花瓣飘落谁来葬 无...
    随笔狂魔阅读 188评论 0 2