一.母板渲染语法

  1.变量

    {{ 变量 }}

  2.逻辑

    {% 逻辑语 %}

二.变量

  在母板中有变量时,母板引擎会去反向解析找到这个传来的变量,然后替换掉.

  .(点),在母板中是深度查询据点符,它的查询顺序: 字典 => 属性或方法 => 数字索引

三.过滤器

  1.语法

     {{ value|filter_name:参数}}

  2.常用内置过滤器

    {{ value|default:"nothing"}}  如果变量为空就是用默认值

    {{ value|length }}       返回长度,用于字符串和列表

    {{ value|filesizeformat}}     将变量格式化为文件大小格式

    {{ value|slice:"::-1"}}     切片

    {{ value|date:"Y-m-d H:i:s"}}   格式化时间

    {{ value|safe}}         设置为安全值,不会误判为xss攻击

    {{ value|truncatechars:6}}    以数量(包含三个点)截断字符串,剩余部分显示...

    {{ value|truncatewords:6}}    以单词数量截断字符串,用空格来识别单词

    {{ value|cut:" "}}        移除value中的字符

    {{ value|join:"_"}}       用字符串连接列表

四.逻辑标签

  1.for循环

    {% for i in lst %}

      {{ forloop.counter }}{{ i }}

    {% endfor %}

    forloop.counter    从1开始的索引值

    forloop.counter0     从0开始的索引值

    forloop.revcounter     倒叙到1

    forloop.revcounter0    倒叙到0

    forloop.first      判断当前循环是不是第一个,返回bool

    forloop.last      判断当前循环是不是最后一个,返回bool

    forloop.parentloop   获取本层循环的父级循环对象,能用以上方法

  2.for...empty

    {% for i in lst %}

      {{ i }}

    {% empty %}

      这个列表lst是空的,不是遍历到i的值是空的

    {% endfor %}

  3.if条件判断,基本支持python中的判断,但是不支持连续判断

    {% if 条件 %}

      结果

    {% elif 条件 %}

      结果

    {% else %}

      结果

    {% endif %}

  4.with 别名

    {% with a = 复杂变量 %}  / {% with 复杂变量 as a%}

      {{ a }}        只能在with语句中使用

    {% endwith %}

  5.csrf_token  跨站请求伪造保护

    {% csrf_token %}  防止post请求登陆时恶意攻击

五.继承

  1.母板

    {% block 变量名 %}

      母板预留位置

    {% endblock %}

  2.继承板

    {% extends "母板.html" %}

    {% block 变量名 %}

      替换内容

    {% endblock %}

  3. 组件

    {% include "文件名.html" %}

六. 自定义标签和过滤器

  1. 在settings中配置app

  2. 在app中创建templatetags的python包(固定)

  3.在templatetags中创建py文件,自定义过滤器和标签

from django import template
from django.utils.safestring import mark_safe
register = template.Library() @register.filter # 自定义过滤器,只能两个参数,可以if for
def f1(x,y):
return x*Y @register.simple_tags #自定义标签,能接收多个参数
def f2():
return 1

自定义标签和过滤器

  4. 使用自定义标签和过滤器的时候需要导入py文件

    {% load py文件 %}

  5. 自定义标签和过滤器的使用

    {{ num|filter:y }}    num是第一个参数,y是第二个参数,filter是函数名

    {% simple_tags 参数1 参数2 ...%}  simple_tags是函数名,参数用空格隔开

django的母板系统的更多相关文章

  1. D django 用户认证系统

    django认证系统包含三个部分:用户.权限和分组 安装 django项目默认启用了认证系统,如果不是使用django-admin.py创建项目的可以通过在settings配置文件里面的INSTALL ...

  2. Django用户认证系统(三)组与权限

    Django的权限系统很简单,它可以赋予users或groups中的users以权限. Django admin后台就使用了该权限系统,不过也可以用到你自己的代码中. User对象具有两个ManyTo ...

  3. python学习笔记--Django入门二 Django 的模板系统

    为了使网站更干净简洁更容易维护,页面的设计和Python的代码必须分离开.我们可以使用Django的 模板系统 (Template System)来实现这种模式. 几个简单的模板标签(tag):   ...

  4. 第四章:Django 的模板系统(转)

    在之前的章节中,你可能觉得例子中视图返回文本有点不妥.即是, HTML 是直接写在 Python 代码中的.     这种做法会导致这些问题:     要做任何设计上的更改就必须改写 Python 代 ...

  5. django之urls系统

    Django的urls系统简介 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映 ...

  6. django用户认证系统——拓展 User 模型

    Django 用户认证系统提供了一个内置的 User 对象,用于记录用户的用户名,密码等个人信息.对于 Django 内置的 User 模型, 仅包含以下一些主要的属性: username,即用户名 ...

  7. “Django用户认证系统”学习资料收集

    首推追梦人物——Django用户认证系统 待续……

  8. Python学习(三十一)—— Django之路由系统

    转载自:http://www.cnblogs.com/liwenzhou/p/8271147.html Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLc ...

  9. day64 url用法以及django的路由系统

    此篇博客是以备后查的,用到的时候记得过来查找即可! 路由系统:就是我们的django项目创建的时候自带的那个urls.py 它本身里面是映射的对应关系,一个大的列表里面,一个个元祖,元祖里面是url或 ...

随机推荐

  1. MYSQL存储过程实现用户登录

    MYSQL存储过程实现用户登录 CREATE DEFINER=`root`@`%` PROCEDURE `uc_session_login`( ), ) ) LANGUAGE SQL NOT DETE ...

  2. Container 、Injection

    Container: Linux容器作为一类操作系统层面的虚拟化技术成果,旨在立足于单一Linux主机交付多套隔离性Linux环境.与虚拟机不同,容器系统并不需要运行特定的访客操作系统.相反,容器共享 ...

  3. [编程小技巧]Notepad++中如何实现文本对比功能?

    1.打开Notepad++插件中心   2.安装Compare   3.按提示重启Notepad++     4.点击Compare比较临近的两个文件       5. 取消比较     6 Comp ...

  4. laravel表单操作

    $request->all()//获取所有参数if($request->isMethod('GET')){判断是否是GET请求}$res = $request->is('studen ...

  5. 深度学习原理与框架-递归神经网络-RNN_exmaple(代码) 1.rnn.BasicLSTMCell(构造基本网络) 2.tf.nn.dynamic_rnn(执行rnn网络) 3.tf.expand_dim(增加输入数据的维度) 4.tf.tile(在某个维度上按照倍数进行平铺迭代) 5.tf.squeeze(去除维度上为1的维度)

    1. rnn.BasicLSTMCell(num_hidden) #  构造单层的lstm网络结构 参数说明:num_hidden表示隐藏层的个数 2.tf.nn.dynamic_rnn(cell, ...

  6. 第二篇*1、Python基本数据类型

    数据类型: 变量可以处理不同类型的值,基本的类型是数和字符串.使用变量时只需要给它们赋一个值.不需要声明或定义数据类型.Python3 中有六个标准的数据类型:Number(数字),String(字符 ...

  7. English-商务英文邮件例句100句

    最常用最专业的商务英文邮件例句100句——塞依SAP培训 字体大小:大 | 中 | 小2013-08-27 17:24 阅读(74) 评论(0) 分类:sap职场  1. I am writing t ...

  8. Unity网格合并_材质合并

    [转]Unity网格合并_材质合并 原帖请戳:Unity网格合并_材质合并 写在前面: 从优化角度,Mesh需要合并. 从换装的角度(这里指的是换形状.换组成部件的换装,而不是挂点型的换装),都需要网 ...

  9. 《DOM Scripting》学习笔记-——第二章 js语法

    <Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...

  10. apt与apt-get命令的区别与解释

    [apt与apt-get命令的区别与解释] Ubuntu 16.04 发布时,一个引人注目的新特性便是 apt 命令的引入.其实早在 2014 年,apt 命令就已经发布了第一个稳定版,只是直到 20 ...