django 模版关闭转义方式

django 模版显示的html中出现'类似的ascii字符,这是由于django对单引号进行了转义,可以通过关闭转义解决html处理异常问题。

关闭django转义的方法有如下两种:

1.关闭单个模版变量的转义:

利用"|safe" 过滤器告诉django这个变量不需要转义, 如模版中:{{ data|sage }}

2.利用django模版标记关闭html或js块转义

{% autoescape off %}

code..

{% endautoescape %}

补充知识:Django使用mark_safe()和format_html()函数

django从view向template传递HTML字符串的时候,django默认不渲染此HTML,原因是为了防止这段字符串里面有恶意攻击的代码。

如果需要渲染这段字符串,需要在view里这样写:

from django.utils.safestring import mark_safe

def view(request):
  ....
  pageHtml = mark_safe("<a href='#'>首页</a>")
  ret =
  {"equit_cate_list":list,"count":count,"ecform":ecform,"page":page,"pageHtml":pageHtml}
  return render(request, "list_equip_category.html",ret)

前端页面直接使用{{pageHtml}}即可。

mark_safe这个函数就是确认这段函数是安全的,不是恶意攻击的。

adminx中定义的一些插件等都是用mark_safe()进行渲染的。

format_html和mark_safe非常类似,本质还是调用mark_safe函数,不同在于传参方式,mark_safe直接传递完整的html字符串;

而format_html需要使用{}占位符:

format_html('<span style="color:{};">{}</span>', color_code, obj.approval)

以上这篇django 模版关闭转义方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解django中Template语言

    Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,即模型M,视图V和模版T.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件.并于2005年7月在BSD许可证下发布.这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的. 下面看下本文重点给大家介绍的django中Template语言,详情如下: Template本身也有自己的语言和语法,用来处理简单的数据显示 1.常用语法 判断

  • Python的Django框架中自定义模版标签的示例

    为了自定义一个模板标签,你需要告诉Django当遇到你的标签时怎样进行这个过程. 当Django编译一个模板时,它将原始模板分成一个个 节点 .每个节点都是 django.template.Node 的一个实例,并且具备 render() 方法. 于是,一个已编译的模板就是 节点 对象的一个列表. 例如,看看这个模板: Hello, {{ person.name }}. {% ifequal name.birthday today %} Happy birthday! {% else %} Be

  • 在Python中使用Mako模版库的简单教程

    Mako是一个高性能的Python模板库,它的语法和API借鉴了很多其他的模板库,如Django.Jinja2等等. 基本用法 创建模板并渲染它的最基本的方法是使用 Template 类: from mako.template import Template t = Template('hello world!') print t.render() 传给 Template 的文本参数被编译为一个Python模块.模块包含一个 render_body() 函数,它产生模板的输出.调用 render

  • django 模版关闭转义方式

    django 模版显示的html中出现'类似的ascii字符,这是由于django对单引号进行了转义,可以通过关闭转义解决html处理异常问题. 关闭django转义的方法有如下两种: 1.关闭单个模版变量的转义: 利用"|safe" 过滤器告诉django这个变量不需要转义, 如模版中:{{ data|sage }} 2.利用django模版标记关闭html或js块转义 {% autoescape off %} code.. {% endautoescape %} 补充知识:Djan

  • 详解Django模版中加载静态文件配置方法

    1.settings.INSTALLED_APPS下添加:django.contrib.staticfiles 2.settings.py下添加:STATIC_URL = '/static/' 3. (1)在APP下新建文件夹static,然后在这个static文件夹下创建一个当前APP的名字的文件夹,再把静态文件放到这个文件夹下:(类似于Templates配置) 在模板中这样调用: {% load static %} <img src="{% static 'front/logo.jpg

  • django admin 添加自定义链接方式

    背景 最近做项目开发出现一个需求,就是前端会发来用户对某一项内容的报错,报错信息中包含出错内容的id,为了方便管理,需要实现点击这个id直接转达相应内容的详情页面. 效果展示 解决 首先在django admin的列表中查看数据id所代表的链接 使用浏览器的检查元素功能查看点击该id所跳转的链接 现在我们知道点击admin页面跳转链接的格式了. 自定义widget 假如我们的内容id使用CharField字段存储,那么可以这样自定义一个widget HTML {% load myfileter

  • Django ValuesQuerySet转json方式

    在使用ValuesQuerySet存放查询结果时,有时需要转为json,但并不能直接使用json.dumps()直接转,而是需要经过下面一个步骤: result_set = Apple.objects.all().values() print type(result_set) data_list = result_set[:] # queryset转为list print type(data_list) output: <class 'django.db.models.query.ValuesQ

  • 详解Django配置JWT认证方式

    1. 安装 rest_framework + djangorestframework_simplejwt 安装djangorestframework_simplejwt : pip install djangorestframework-simplejwt 安装rest_framework: pip install djangorestframework djangorestframework_simplejwt 是提供 jwt 的 django 应用. 2. 配置好 rest_framewor

  • 详解django三种文件下载方式

    一.概述 在实际的项目中很多时候需要用到下载功能,如导excel.pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载. 实现方式:a标签+响应头信息(当然你可以选择form实现) <div class="col-md-4"><a href="{% url 'download' %}" rel="external nofollow" >点我下载

  • 利用Django模版生成树状结构实例代码

    前言 我们经常会有这样的需求,比如评论功能,每个评论都有可能会有自己的子评论,如果在界面只展示成一列的话非常不美观,也不能体现出他们的层级关系.那么我们今天就来看看如何使用Django的模版来生成树状结构,以本站为例,效果如下图所示: 那么我们要怎么实现呢?首先先看看评论实体的定义,如下所示: class Comment(models.Model): body = models.TextField('正文', max_length=300) author = models.ForeignKey(

  • 微信小程序登录对接Django后端实现JWT方式验证登录详解

    先上效果图 点击授权按钮后可以显示部分资料和头像,点击修改资料可以修改部分资料. 流程 1.使用微信小程序登录和获取用户信息Api接口 2.把Api获取的用户资料和code发送给django后端 3.通过微信接口把code换取成openid 4.后端将openid作为用户名和密码 5.后端通过JSON web token方式登录,把token和用户id传回小程序 6.小程序将token和用户id保存在storage中 下次请求需要验证用户身份的页面时,在header中加入token这个字段 微信

  • 详解重置Django migration的常见方式

    根据django官方文档建议,开发过程中会把生成的migrations提交到git中.由于各种原因,会有一些场景需要重置migrations,故总结一些常用场景及解决办法. 场景一 不考虑数据库数据,可以完全清空数据库. 步骤: 删除所有migrations find . -path "*/migrations/*.py" -not -name "__init__.py" -delete find . -path "*/migrations/*.pyc&q

  • Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】

    本文实例讲述了Django框架模板语言.分享给大家供大家参考,具体如下: 模板语言 模板语言简称为DTL(Django Template Language) 模板变量 模板变量名由数字,字母,下划线和点组成,不能以下划线开头. 使用:{{模板变量名}} def index2(request): '''模板加载顺序''' return render(request, 'booktest/index2.html') # /temp_var def temp_var(request): '''模板变量

随机推荐