Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全.但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件.为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器"|safe"的方式告诉Django这段代码是安全的不必转义.比…
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')] , 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_…
index.html {{QQ}} views.py def index(request): context={ 'QQ':'<a href="http://www.qq.com">QQ</a>' } return render(request,"index.html",context=context)…
本节将介绍Django模版系统的语法.Django模版语言致力于在性能和简单性上取得平衡. 如果你有过其它编程背景,或者使用过一些在HTML中直接混入程序代码的语言,那么你需要记住,Django的模版系统并不是简单的将Python嵌入到HTML中. 一.模板 模版是纯文本文件,可以生成任何基于文本的文件格式,比如HTML,XML,CSV等. 下面是一个小模版,它展示了一些基本的元素. {% extends "base_generic.html" %} {% block title %}…
本节将介绍Django模版系统的语法.Django模版语言致力于在性能和简单性上取得平衡. 如果你有过其它编程背景,或者使用过一些在HTML中直接混入程序代码的语言,那么你需要记住,Django的模版系统并不是简单的将Python嵌入到HTML中. 一.模板 模版是纯文本文件,可以生成任何基于文本的文件格式,比如HTML,XML,CSV等. 下面是一个小模版,它展示了一些基本的元素. {% extends "base_generic.html" %} {% block title %}…
Django 模板相关 视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面.目前市面上有非常多的模板系统,其中最知名最好用的就是DTL和Jinja2. DTL是Django Template Language三个单词的缩写,也就是Django自带的模板语言.当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况.因…
Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个模板是一个简单的文本文件,它可以生成任何基于文本的格式,html,csv,xml等等 模板里面包含变量,过滤器,标签和注释,下面是一个简单的模板文件 {% extends "base_generic.html" %} {% block title %}{{ section.title }}…
Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoescape作为结束标签. 当自动转义生效时,所有变量内容会被转义成HTML输出(在所有过滤器生效后) 这等同与手动将escape筛选器应用于每个变量. 实例: 1)             <!-- index.html文件 --> <body>    <p>{{ text…
通过管道符 "|" 来使用过滤器,{{ value|过滤器:参数 }} Django 的模板语言中提供了六十个左右的内置过滤器 urls.py: from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^filter_test/', views.filter_test), ] default: 如果一个变量的变量名不存在…
何谓转义?就是把html语言的关键字过滤掉.例如,<div>就是html的关键字,如果要在html页面上呈现<div>,其源代码就必须是<div> PS:转义其实就是把HTML代码给转换成HTML实体了!默认情况下,django自动为开发者提供escape功能,即在html代码render之前,先进行转义,然后再呈现出来.这样的话,我们如果想输出一个链接,被转义之后,可能就无法得到我们想要的结果. 例如,下面的method,如果用户是匿名用户,则输出"匿名用户…