django的母板系统
一.母板渲染语法
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的母板系统的更多相关文章
- D django 用户认证系统
django认证系统包含三个部分:用户.权限和分组 安装 django项目默认启用了认证系统,如果不是使用django-admin.py创建项目的可以通过在settings配置文件里面的INSTALL ...
- Django用户认证系统(三)组与权限
Django的权限系统很简单,它可以赋予users或groups中的users以权限. Django admin后台就使用了该权限系统,不过也可以用到你自己的代码中. User对象具有两个ManyTo ...
- python学习笔记--Django入门二 Django 的模板系统
为了使网站更干净简洁更容易维护,页面的设计和Python的代码必须分离开.我们可以使用Django的 模板系统 (Template System)来实现这种模式. 几个简单的模板标签(tag): ...
- 第四章:Django 的模板系统(转)
在之前的章节中,你可能觉得例子中视图返回文本有点不妥.即是, HTML 是直接写在 Python 代码中的. 这种做法会导致这些问题: 要做任何设计上的更改就必须改写 Python 代 ...
- django之urls系统
Django的urls系统简介 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映 ...
- django用户认证系统——拓展 User 模型
Django 用户认证系统提供了一个内置的 User 对象,用于记录用户的用户名,密码等个人信息.对于 Django 内置的 User 模型, 仅包含以下一些主要的属性: username,即用户名 ...
- “Django用户认证系统”学习资料收集
首推追梦人物——Django用户认证系统 待续……
- Python学习(三十一)—— Django之路由系统
转载自:http://www.cnblogs.com/liwenzhou/p/8271147.html Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLc ...
- day64 url用法以及django的路由系统
此篇博客是以备后查的,用到的时候记得过来查找即可! 路由系统:就是我们的django项目创建的时候自带的那个urls.py 它本身里面是映射的对应关系,一个大的列表里面,一个个元祖,元祖里面是url或 ...
随机推荐
- docker network基础
前面介绍了nginx与php两个容器间是如何进行通信的: [root@docker ~]# docker run -d --name=php -v /www:/usr/local/nginx/html ...
- 向量的卷积(convolution)运算
一.向量的卷积运算 给定两个n维向量α=(a0, a1, ..., an-1)T,β=(b0, b1, ..., bn-1)T,则α与β的卷积运算定义为: α*β=(c0, c1, ..., c2n- ...
- 当一个HTML元素需要添加mouseon、mouseout与click事件,或者mouserenter、mouseleave和click事件时,click事件无法触发
当一个HTML元素需要添加mouseon.mouseout与click事件,或者mouserenter.mouseleave和click事件时,click事件无法触发 针对上述问题,我遇到的有两种情况 ...
- python3之time、datetime、random
UTC:协调世界时,又称世界统一时间.世界标准时间.国际协调时间.由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC. 中国属于东八区,领先世界时间8小时 time模块 time.ti ...
- gentoo 图像方面的软件
图像方面的软件一般包括:查看图像,屏幕截图,图像修改. 查看图像简单的可以安装 feh,但是 feh 一般作为墙纸来用.稍微好一些的是 gqview. 屏幕截图可以用 screengrab,使用的时候 ...
- Error during artifact deployment. See server log for details.
Error during artifact deployment. See server log for details. 这两个地方要一样.不然.就报 Error during artifact d ...
- leetcode148
class Solution { public: ListNode* sortList(ListNode* head) { multimap<int,ListNode*> mul; whi ...
- ReactiveX 学习笔记(24)使用 RxCpp + C++ REST SDK 调用 REST API
JSON : Placeholder JSON : Placeholder (https://jsonplaceholder.typicode.com/) 是一个用于测试的 REST API 网站. ...
- sublime3支持es6语法和vue彩色显示
支持ES6语法设置: 首先安装nodejs 当然你可以使用其它诸如jsc之类的环境来运行js, 本文使用的是nodejs. 首先确保你的电脑已经安装好nodejs, 并已将其添加到环境变量中 (一般安 ...
- xadmin 常见错误
版本: Django==2.0.5 xadmin==0.6.1 djangorestframework==3.9.0 1.No module named 'django.core.urlresolve ...