关闭Django模板的自动转义

Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因是为了安全。
但是有的时候我们可能不希望这些HTML元素被转义。
为了在Django中关闭HTML的自动转义有两种方式:

一、一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。

比如:

<p>这行代表会被自动转义</p>: {{ data }}
<p>这行代表不会被自动转义</p>: {{ data|safe }}

其中第二行我们关闭了Django的自动转义。

二、通过{%autoescape off%}的方式关闭整段代码的自动转义,

比如下面这样:

{% autoescape off %}
    Hello {{ name }}
{% endautoescape %}

原文地址:https://blog.51cto.com/alun51cto/2416492

时间: 2024-11-11 09:04:48

关闭Django模板的自动转义的相关文章

django 模板语言

Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个模板是一个简单的文本文件,它可以生成任何基于文本的格式,html,csv,xml等等 模板里面包含变量,过滤器,标签和注释,下面是一个简单的模板文件 {% extends "base_generic.html" %} {% block title %}{{ section.title }}

Django自动转义

Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全.但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件.为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义.比如: <p

django中,kindeditor存到数据库的html,到了前台被html标签被自动转义的解决办法

1,使用kindeditor进行了上传图片功能,存储到后台的html代码为: <img src="/static/content_img/img_2015-07-21-024421.jpg"  />KindEditor 2,我把这个unicode字符串返回到前台的模板,结果显示了html代码: <img src="/static/content_img/img_2015-07-21-024421.jpg"  />KindEditor 3,自己

Django模板系统详解

你可能已经注意到我们在例子视图中返回文本的方式有点特别.也就是说,HTML被硬性地直接写入 Python代码之中. 这种处理会导致一些问题: § 对页面设计的进行任何改变都必须对 Python代码进行相应的修改.站点设计的修改往往比底层Python代码的修改要频繁得多,因此如果可以在不进行 Python代码修改的情况下变更设计,那将会方便得多. § Python代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成.设计人员和 HTML

Django 模板中 变量 过滤器 标签 的使用方法

一.变量 1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的时候,查找的顺序是什么样子呢?        a.字典查找,例如:foo["var1"]        b.属性查找,例如:foo.bar        c.方法查找,例如:foo.bar()        d.list-index查找,例如foo[bar] 注意:方法查找比一般的查找要复杂一些 (1

Django模板层(template)

1.模板是一个文本,用于分离文档的表现形式和内容.也可以说是:HTML代码+模板语法      简单的例子:使用模板在页面显示"hello word" 在template中新建html文件:hello.html,  在views.py中添加对象,向模板中提交数据.在urls.py中添加url与函数对象的映射关系 <h1>{{ hello }}</h1> hello.html from django.shortcuts import render,redirect

Django 模板系统(template)

介绍 官方文档 常用语法 只需要记两种特殊符号: {{  }} 和  {% %} 变量相关的用{{}} 逻辑相关的用{%%} 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值. 几个例子: view中代码: def template_test(request): l = [11, 22, 33] d = {"name": "alex"} class Person(object): def __ini

Django - 模板系统

一.常用语法 官方文档:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#std:templatetag-for 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值. 几个例子: view中代码: 1 def template_test(request): 2

Django模板层

1. 模板变量 在 Django 模板中遍历复杂数据结构的关键是句点字符'.' 1.1 应用示例 views: def index(request): # 字符串  s="hello"  # 列表  list=[111,222,333]   # 字典  dic={"name":"yuan","age":18}   # 日期对象  date = datetime.date(1993, 5, 2)   class Person(o