Django模板语言(DTL)基础
## 模板变量
- 普通变量
{{ name }}
- 对象变量(使用点号访问对象属性和方法,方法不加括号)
{{ person.name }}
## 常用模板标签
# if标签,支持and,or,not和嵌套,不支持括号
{% if %}{% endif %}
{% if %}{% elif %}...{% else %}{% endif %}
# for标签,用法与Python中基本相同
{% for item in items %}{% endfor %}
{% for item in items reversed %}{% endfor %} # 反向迭代
{% for k, v in data.items %}{% endfor %}
{% for item in items %} #相当于:if items:
语句一 for item in items:
{% empty %} 语句一
语句二 else:
{% endfor %} 语句二
- 在for标签中自带forloop对象
- forloop.counter 从1开始计数
{% for item in items %}
{{ forloop.counter }}: {{ item }}
- forloop.counter0 从0开始计数
- forloop.revcounter 逆向计数,最后一个数是1
- forloop.revcounter0 逆向计数,最后一个数是0
- forloop.first 布尔值,第一次循环时为True
- forloop.last 布尔值,最后一次循环时为True
- forloop.parentloop 引用父级循环的forloop对象
# 相等判断(x, y可以是变量,字符串,整数,小数,变量不需要加{{}},字符串可以是单/双引号引起的硬编码,但列表、字典、布尔值不能硬编码,可以使用标签变量赋值,并且同样支持{% else %}标签)
{% ifequal x y %}{% endifequal %}
{% ifnotequal x y %}{% endifnotequal %}
# 注释
{# 单行注释 #}
{% comment %}
多行注释
{% endcomment %}
## 过滤器(Python中关于字符串方法基本适用)
{{ name|lower }} 全小写
{{ name|upper }} 全大写
{{ name|title }} 首字母大写
{{ users_list|first }} 第一个元素
{{ users_list|last }} 最后一个元素
{{ sentence|truncatewords:"5" }} 字符串截断,以空格区分(所以中文无效),取前五个单词,多余的词用...省略,数字必须放在双引号内
{{ sentence|slice:"4" }} 字符串切分,可以用于中文,多余的词没有任何标识
{{ sentence|addslashes}} 在反斜线,单引号,双引号前面加一个斜线,可用于转义字符串
{{ birthday|data:"F j, y" }} 格式化date或datatime对象,双引号内也可以是 DATE_FORMAT、DATETIME_FORMAT、SHORT_DATE_FORMAT 或 SHORT_DATE-TIME_FORMAT
{{ word:length }} 返回长度
## 模板引用,引用其他模板的全部内容
{% include url %} # url可以是双引号字符串硬编码,也可以是变量
## 模板继承
- 父模板使用block标签表示可以被子模板修改的块
{% block block_name %}{% endblock %}
- 子模板在文件第一行使用extends标签继承父模板,并同样使用block标签修改父模板中的同名块
{% extends url %} # url可以是双引号字符串硬编码,也可以是变量
{% block block_name %} 新的内容 {% endblock %}
- 继承树中的任何模板都能访问上下文中的每一个模板变量
## 使用模板
from django.shortcuts import render def home(request):
return render(request, "index.html", {"name": "Stanley", "age":""})
# 第一个参数必须是request,第二个参数是模板路径,第三个参数是模板变量
Django模板语言(DTL)基础的更多相关文章
- django框架基础-django模板语言-长期维护
################## 常用的模板语言 ####################### # django的模板语言, # # 只需要记两种特殊符号: # # {{ } ...
- Django 模板语言 路由 视图
. 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...
- Django模板语言(常用语法规则)
Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...
- 10:django 模板语言
Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个 ...
- Django模板语言(一)
1,Django模板语言 1.1>基础语法:1.1.1,变量相关:{{ 变量名 }},1.1.2,逻辑相关{% ... %} 在Django模板语言中按此语法使用:{{ 变量名 }},当模板引擎 ...
- 6月15日 python学习总结 Django模板语言相关内容
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
- Django模板语言初识
一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...
- Django模板语言的复用
一.include标签 由于在项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的,基于这个问题,我们可以采用模板语言复用include标签来帮我们解决,这样就避免 ...
- Django模板语言相关内容 Djan
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
随机推荐
- .NET开源工作流RoadFlow-表单设计-下拉列表
下拉列表即<select></select>标签,相关选项与单选按钮组相同: 是否添加空项:即在下拉列表的开头是否添加一个空的选项<option value=" ...
- Write a makefile to compile *.c and link to executable target
https://wenku.baidu.com/view/b1ec946027d3240c8447ef9a.html GNU+make中文手册V3.8 <=========From Docs== ...
- ubuntu下go开发环境
https://qiita.com/necomeshi/items/676ccb669d6e6102117b 安装 https://golang.org/dl/ # 下载&解压 axel -n ...
- Linux下实现免密码登录
1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文 ...
- NO.004-2018.02.09《离思五首·其四》唐代:元稹
离思五首·其四_古诗文网 离思五首·其四 唐代:元稹 曾经沧海难为水,除却巫山不是云.曾经到临过沧海,别处的水就不足为顾:除了巫山,别处的云便不称其为云.曾经:曾经到临.经:经临,经过.难为:这里指“ ...
- scrum3
首先我一直做的是框架的设计,但不同的是这次我们整合完善了这个软件目前的所有需求也定义好了它的大题框架,总的来说设计部分已经结束,现在也就是本次冲刺,我们将重点进行整个软件的数据库编程环节,也就是用SQ ...
- 改写python round()函数,解决四舍五入问题 round(1.365,2)=1.36
round()函数四舍五入存在一个问题,遇到5不一定进一.如下图所示: print(round(1.365,2)) #1.36 没进一 print('%.2f'%1.365) print(round( ...
- 统计一段文章的单词频率,取出频率最高的5个单词和个数(python)
练习题:统计一段英语文章的单词频率,取出频率最高的5个单词和个数(用python实现) 先全部转为小写再判定 lower() 怎么判定单词? 1 不是字母的特殊字符作为分隔符分割字符串 (避免特殊字符 ...
- Android(java)学习笔记30:泛型接口的概述和使用
1. 泛型接口的概述和使用: package cn.itcast_06; /* * 泛型接口:把泛型定义在接口上 */ public interface Inter<T> { public ...
- (第五场)J plan 【贪心】
题目链接:https://www.nowcoder.com/acm/contest/143/J 题目描述 There are n students going to travel. And hotel ...