django中Template语言
Template本身也有自己的语言和语法,用来处理简单的数据显示
- 常用语法
- 判断指令
{% if 条件 %}...{%endif%}
{% if 条件 %}...{%elif 条件 %}...{%endif%}
{% if 条件 %}...{%elif 条件 %}...{%else%}...{%endif%}
{% if a in b %}...{%endif%} - 循环指令
{%for %} ...{%endfor}- {% froloop.counter%}用来显示当前循环的计数器,从1开始
- {% forloop.counter0%}用来显示当前循环的计数器,从0开始
- {% froloop.recounter%} 和counter相反,反过来计算的计数值,至1结束
- {% forloop.recounter0%}和counter0相反,反过来计算的计数值,至0结束
- {% forloop.first%}返回的是布尔值,
- {% forloop.last%}返回的是布尔值,
- {% forloop.parentloop%}用来引用上一层循环(父级循环)的forloop对象
- {% cycle%}:网页出现表格是会根据奇、偶行数存放不一样的设置,比如颜色。
- {% empty%} :如果for 循环式空字符串,就会导致for循环执行不下去,但是页面不能空着,就让他处理下面的这个语句。
- {% now 格式字符串 %} : 显示当前日期时间的功能,不用从后端传入。格式字符串:'D M Y hⓂ️s a'
- {% lorem %} :不知道什么内容时的填充符,表示一段没有意义的文字。{% lorem [count][method][random]%} count是次数,method可以设置为 w (表示文字),p (表示段落),最后加上random回随机出现这些字符串
- 判断指令
- 过滤器与其他语法标识符
过滤器名 | 用法 | 范例 |
---|---|---|
addslashes | 为字符串需要的地方加上转义字符 | {{mes|addslashes}},如mes的内容为"It's a cat",会变成“It' a cat ” |
capfirst | 字符串首字母大写 | |
center,ljust,rjust | 为字符串内容加上指定空格后居中,靠左,靠右 | {{mes|cener:"15"}},mes居总,占据15个字符 |
cut | 在字符串中删除指定的子字符串 | {{mes|cut: ' '}} ,移除所有空格字符串 |
date | 设置日期显示时间 | {{value|date:" D d M Y"}} value为datetime的标准格式, 可以用date来指定详细的格式和内容, |
default | 如果没有值,设置默认值 | {{mes|default :"没有信息“}} |
dictsort | 为字典形式内容的变量排列顺序 | {{value|dictsort :"name"}},以名字字段来作为排序的依据 |
dictsortreversed | 上一指令的反向排序 | |
divisibleby | 测试数值数据是否可被指定的数整除 | {{value|divisibleby:5} 测试value是否可被5整除 |
escape | 把字符串的HTML标记变成显示用的的字符串 | {{msg|escape}},msg中若有HTM标志,则会失去作用且被以文字的形式显示出来 |
filesizeformat | 以人们习惯的方式显示文件大小的格式(KB,MB) | {{value| filesizeformat}} |
first | 只取出列表中的第一个数据 | {{value|first}} |
last | 只取出列表中的最后一个数据 | 同上 |
length | 返回列表的数据长度 | 同上 |
length_is | 测试数据是否为指定长度 | {{value | length_is: "3"}}, 测试values的长度是否为3 |
floatformat | 以指定的浮点数格式来显示数据 | {{value|floatformat:3}}指定三位小数位 |
linebreaks | 把文字内容的换行符号转换为HTML的 和 |
{{msg|linebreaks}} |
linebreaksbr | 把文字内容的换行符号转换为HTML的 | {{msg|linebreaksbr}} |
linenumber | 为显示的文字加上行号 | {{msg|linenumbers}} |
lower/upper | 把字符串的全部内容转换为小写/大写 | 同上 |
random | 以随机数将前面的数据内容显示出来 | {{values | random}} |
safe | 标记字符串为安全的,不需要再处理转义字符 | {{msg|sage}} |
slugify | 把字符串内的空格编程”-“,让字符串可以安全地放在网址栏 | {{msg|slugify}},若原本的msg为”It's a cat",则会返回“Its-a-cat" |
striptags | 把所有的HTML标记都删除 | |
truncatechars | 把过长的字符串裁切成指定长度,同时最后面的3个字符会转换成”..." | {{msg|truncatechars:20}} |
wordcount | 计算字数 | {{msg|wordcount}} |
yesno | 按照值得内容是True,False,None,显示出有意义的内容 | {{value|yesno:"对的,错了,不知道"}} |
django中Template语言的更多相关文章
- django 中模板语言的各种用法
模板 1.视图中使用模板 模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户 1.普通方法:HTML被直接硬编码在 P ...
- 在Django中template遇到 "context must be a dict rather
原代码: # 使用模板文件 # 1.加载模板文件,获取一个模板文件 temp = loader.get_template('booktest/index.html') # 2.定义模板上下文:给模板文 ...
- django的模板语言中一些之前没有用过的小点
1.模板语言中的for循环的最后一个的表示方式 {% for auther in auther_list %} {% if forloop.last %} {# 这里的意思是for循环的最后一个的意思 ...
- django中的template部分
模版部分 取值 {{key}} 语句块 {%for item in data%} {%extends 'base.html'%} 深度变量的查找(万能的句点号) 在到目前为止的例子中,我们通过 con ...
- 使用pycharm手动搭建python语言django开发环境(四) django中buffer类型与str类型的联合使用
在django中,如果用到buffer类型时,buffer的编码格式是utf-8类型.使用str()进行转为字符串类型会异常. 异常会有如下提示:'ascii' codec can't decode ...
- django 的模板语言
1.模版的执行 模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户. def current_datetime(req ...
- Django中的Form
Form 一.使用Form Django中的Form使用时一般有两种功能: 1.生成html标签 2.验证输入内容 要想使用django提供的form,要在views里导入form模块 from dj ...
- Django之模板语言
一.模板语言介绍 模板语言渲染的整个过程其实就是将html转换成函数,并为该函数提供全局变量,然后执行该函数 二.模板语言的语法 模板中也有自己的语言,该语言可以实现数据展示 # 业务请求处理做的页面 ...
- Django中模板的用法简介
1. 模板系统的介绍 Django作为一个Web框架,其模板所需的HTML输出静态部分以及动态内容插入 模板由HTML代码和逻辑控制代码构成 Django框架的模板语言的语法格式: {{var_nam ...
随机推荐
- 记录一下第一次用markdown写博客回滚过程
前面写博客,一直用的是博客园的TinyMCE编辑器, 今天不知道哪根筋搭牢了,想试试用Markdown写. 于是在“选项”里面把默认编辑器修改为“Markdown”,鉴于本人有一定的Markdown基 ...
- kuangbin专题 专题九 连通图 POJ 3694 Network
题目链接:https://vjudge.net/problem/POJ-3694 题目:给定一个连通图,求桥的个数,每次查询,加入一条边,问加入这条边后还有多少个桥. 思路:tarjan + 并查集 ...
- Linux 7.5 SSH服务和SFTP服务分离
SFTP是SSH的一部分,SFTP没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像是一个服务器程序,而更像是一个客户端程序. ...
- VueRouter爬坑第四篇-命名路由、编程式导航
VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...
- 78.纯 CSS 创作 Windows 启动界面
原文地址:https://segmentfault.com/a/1190000015632759 学习后效果地址:https://scrimba.com/c/cPgWmZCg HTML code: & ...
- LeetCode 第15题-三数之和
1. 题目 2.题目分析与思路 3.思路 1. 题目 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且 ...
- [bzoj1005] [洛谷P2624] 明明的烦恼
Description 自从明明学了树的结构,就对奇怪的树产生了兴趣-- 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N(0 ...
- java面试| 线程面试题集合
集合的面试题就不罗列了,基本上在深入理解集合系列已覆盖 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 这里搜罗网上常用线程面试题, ...
- NHibernate 初识(0)
参考资料: http://nhibernate.info/
- 提高Dom 访问效率
在浏览器中对于Dom的操作和普通的脚本的操作处于两个不同的dll中,两个dll的交互是比较耗时的,优化对Dom的操作可以提高脚本的执行速度. JS访问DOM是很慢的,尽量不要用JS来设置页面 布局 有 ...