概述

模板由两部分组成,HTML代码,逻辑控制代码,作用:快速生成HTML页面,优点:模板的设计实现了业务逻辑与现实内容的分离


定义模板

挖坑与继承

模板继承可以减少页面的内容的重复定义,实现页面的重用,在父模板中预留区域,子模板去填充。

block标签

父html页面挖坑

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% block content %} {% endblock %}
</body>
</html>

子html页面继承

	{% extends 'father.html' %}

	{% block content %}
<!--写子模板的内容,会重写父模板,显示子模板内容-->
<!--不写内容调用父模板用super-->
{{ block.super }}
{% endblock %}

if标签

	{% if 表达式1 %}
{# 语句1 #}
{% elif %}
{# 表达式2 #}
{% else %}
{# 表达式3#}
{% endif %}

for标签

	{% for 变量 in 迭代对象 %}
{# 语句1 #}
{% empty %}
{# 语句2 #}
{% endfor %}

comment标签

	{% comment %}
{# 多行注释 #}
{# {# 单行注释 #} #}
{% endcomment %}

ifequal、ifnotequal标签

	{% ifequal a b %}
{# a,b是否相等#}
{% endifequal %} {% ifnotequal a b %}
{# 判断a,b是否不等 #}
{% endifnotequal %}

url标签

	{% url 'namespace:name' %}
{# 反向解析 #}

csrf_token标签

	{% csrf_token %}
{# 用于跨站请求伪造保护 #}

autoescape标签

	{% autoescape off %}
{{code}}
{# 用于HTML转义 #}
{% endautoescape %}

过滤器

lower

	{{变量|lower}}
{# 将变量转换为小写显示#}

upper

	{{变量|upper}}
{# 将变量转换为大写显示#}

join

	{{str|join:'*'}}
{# 将传过来的str用*连接起来#}

date

	{{date|date:'Y-m-d'}}
{# 设置日期格式 #}

html转移

	{{code|escape}}
{{code|safe}}

加减乘除p>

	{{num|add:10}}
{# 加10 #}
{{num|add:-5}}
{# 减5 #}
{% widthratio num 1 5 %}
{# 乘5 #}
{% widthratio num 1 5%}
{# 除5#}

CSRF

跨站请求伪造:某些恶意网站包含链接、表单、按钮、js,利用登陆用户在浏览器中认证,从而攻击服务.

防止CSRF:在settings.py文件中的MIDDLEWARE增加'django.middleware.csrf.CsrfViewMiddleware'

django模板使用的更多相关文章

  1. Django模板与Vue.js冲突问题

    参考: https://my.oschina.net/soarwilldo/blog/755984 方法1:修改vue.js的默认的绑定符号 Vue.config.delimiters = [&quo ...

  2. 在 Django 模板中遍历复杂数据结构的关键是句点字符

    在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . ). 实例二 mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <h ...

  3. python django 模板

    1 用两个大括号括起来的文字{{person_name}} 称为变量 2 被 大括号和面分号包围的文件({% if ordered_warranty %})是模板标签 3 过滤器是用管道符(|) 和U ...

  4. django 模板中定义临时列表

    <ul class="num_t clr"> {% for obj in ""|ljust:"10" %} <li> ...

  5. Django 模板中引用静态资源(js,css等)

    Django 模板中免不了要用到一些js和CSS文件,查了很多网页,被弄得略晕乎,还是官网靠谱,给个链接大家可以自己看英文的. https://docs.djangoproject.com/en/1. ...

  6. Django模板-分离的模板

    上一篇Django模板-在视图中使用模板最后的问题,我们需要把数据和展现分离开. 你可能首先考虑把模板保存在文件系统的某个位置并用 Python 内建的文件操作函数来读取文件内容. 假设文件保存在 E ...

  7. Django模板-在视图中使用模板

    之前我们已经有了自己的视图mysite.views.py中,应该是这样子的 from django.http import HttpResponse import datetime def curre ...

  8. Django模板-模板标签

    接着Django模板-基础知识继续写模板相关知识. if标签 {% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ). 但是不允许在同一个 ...

  9. Django模板-基础知识

    上一篇中带参数的URLconf虽然可以做到传参动态显示内容,但是最终现实的内容还是硬编码到Python代码中的 def hours_ahead(request,phours): try: phours ...

  10. 关于Django模板引擎的研究

    原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not found.1其原因是没有给视 ...

随机推荐

  1. 解决Chrome在隐身模式下无法播放Flash视频

    在地址栏输入: chrome://flags/#prefer-html-over-flash 打开如下界面,并设置成如下所示: 然后点击左下方重启按钮: 参考: http://www.cnblogs. ...

  2. Python学习-生成器 - Generator

    简单来说,generator是一个能够返回迭代器对象的函数. yield的使用: 在python中,当你定义一个函数,使用了yield关键字时,这个函数就是一个生成器,它的执行会和其他普通的函数有很多 ...

  3. emacs 搭建racket开发环境

    emacs 搭建racket开发环境 emacs下搭建开发racket的环境,笔者之前用过下面两种模式:geiser和racket-mode.相对而言,后一种方式要显得简单.本文主要介绍后一种方式环境 ...

  4. 关于JOS 未对全部内存分页映射之前 物理地址映射问题的思考

    在kern/pmap.c 里面会又以下这段代码,要知道boot_alloc只会分配线性地址,真正建立虚拟页和物理页映射关系的在后面的page_alloc. ////////////////////// ...

  5. Ylmf_Ghost_Win7_SP1_x64_2017_0113.iso虚拟机安装

    新建虚拟机,将iso镜像配置好,然后开启虚拟机 一开始选择PQ8.05: 找到“作业”菜单---“建立” ,新建一个“主分区”然后点击确定 新建主分区作业之后,如果需要新建其他分区继续进行即可,本例只 ...

  6. 时间格式字符串转化为date和时间戳

    NSString *dateStr=@"2012-05-17 11:23:23"; NSLog(@"dateStr=%@",dateStr); NSDateFo ...

  7. 设计一部iphone手机用面向对象的方法

    main.m //编辑字体大小command + < //编译执行快捷键 com + R #import <Foundation/Foundation.h> #import &quo ...

  8. apt-get常见错误

      安装错误:“E: Unmet dependencies.” 原因:非正常停止apt-get install * 错误提示:E: Unmet dependencies. Try 'apt-get - ...

  9. JavaScript扩展运算符(...)

    对象的扩展运算符 扩展运算符是三个点(...).用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中. 如上图所示,新建了一个对象a,然后通过扩展运算符将其属性x,y一并拷贝到b对象中. 合并两个 ...

  10. Memcached 与 Redis 的关键性能指标比较

    性能对比: Redis 只使用单核,而 Memcached 可以使用多核,所以平均每一个核上 Redis在存储小数据时比 Memcached 性 能更高. 而在 100k 以上的数据中,Memcach ...