django cycle标签
django 模板系统 有很多标签,其中cycle我觉得不好理解,至少网上文档也不好理解。
这些标签可以通过渲染模板文件而获得我们预期的效果和文字,常用的有如下这些标签:
标签:{% 标签名 %}
{% if 变量 %} 支持not or and,空对象空的玩意0默认为False
{% else %}
{% endif %}
{% for x in 变量名 %} for 的forloop变量,有如下:counter,counter0,revcounter,revcounter0,first,last,parentloop
{% empty %}
{% endfor %}
{% ifequal 变量一 变量二 %}
{% else %}
{% endifequal %}
python的字典,列表,布尔,不能作为模板的比较量
{% ifnotequal %}
{% else %}
{% endifnotequal %}
过滤器:
用管道符,first(取得第一个字符),lower,upper,truncatewords(显示变量的前三十个词)
addslashes(添加反斜杠到,任何反斜杠,单引和双引号),length(长度,个数)
data(格式化datatime对象,例子:{{ pub_data|data:"F j,Y" }})
过滤器,看附录F
有参数的话直接冒号接参数,如:“参数”
{% block %}
{% endblock %}
{% comment %}
{% endcomment %}
{% crsf_taken %}
防止crsf攻击
{% autoescape off%}{% endautoescape %}关闭自动转义,django默认会对传入模板的特殊符号进行转义,为了安全起见
而比较特别的有一个就是cycle标签,什么功能呢
例子:
cycle会循环它后面的每一个出现的东东,先看例子
{% for foo in list %}
{% cycle 'row1' 'row2' %}
{% endfor %}
每一次循环会循环取得‘row1’和‘row2’这两个。cycle这五个字好像有魔力,每一次循环可以得到一个row,然后会记录,下一次看到cycle就会取得下一个row。
上面是放在html模板文件里,所以我的结果是:
‘row1’ ‘row2’ ‘row3’
在我的视图函数里面,我给list循环三次
有时候我们可以给一个循环去一个名字如下代码
我是定义1:{% cycle 'row1' 'row2' as cbc %}
我是定义2:{% cycle 'row3' 'row3' as aaa%}
页面是会有:我是定义1:row1 我是定义2:row3
去了名字的cycle就可以用变量来取得,就像:{{ cbc }}{{ aaa }}
这个变量就是取得相应循环次数所得的cycle值,
我是定义1:row1 我是定义2:row:3 变量1:row1 变量2:row:3 我是定义1:row2 我是定义2:row4 变量1:row2 变量2:row4 我是定义1:row1 我是定义2:row:3 变量1:row1 变量2:row:3
结果很烦,这时候我们就会考虑,定义的标签可以不每次都说出自己是谁吗,它就不能保持沉默?可以
{% for foo in list %}
我是定义1:{% cycle 'row1' 'row2' as cbc silent%}
我是定义2:{% cycle 'row:3' 'row4' as aaa silent%}
变量1:{{ cbc }}
变量2:{{ aaa }}
{% endfor %}
在最后加入silent,告诉它沉默,就不会说话了,这样就只有变量会说话了,以后。
我是定义1: 我是定义2: 变量1:row1 变量2:row:3 我是定义1: 我是定义2: 变量1:row2 变量2:row4 我是定义1: 我是定义2: 变量1:row1 变量2:row:3
定义后的都没了。
当然,还有一个点,我把for循环去了先
我是定义1:{% cycle 'row1' 'row2' as cbc %}
变量1:{{ cbc }}
没有循环了,但是我们可以告诉模板说,给我循环。像这样
我是定义1:{% cycle 'row1' 'row2' as cbc %}
变量1:{{ cbc }}
给我循环:{% cycle cbc %}
给我循环:{% cycle cbc %}
给我循环:{% cycle cbc %}
</body>
然后他就会乖乖的不断取得下一个值,如果你在cbc名字后面,加入了silent,那么后面的cycle都会保持沉默,除了变量形式的。
django cycle标签的更多相关文章
- django 自定义标签和过滤器
django 自定义标签和过滤器 Django支持自定义标签和过滤器.起初还不太重视它这项功能,但最近试了试自定义标签.发现django这个功能实在是太爽了. 首先在你项目的一个app中建立一个pyt ...
- 解决AngularJS和Django模板标签冲突问题
原地址 Django和AngularJS在模板中使用同样的符号来引用变量,例如 {{variable_name}}. 有两种解决办法,各有利弊.一个修改AngularJS模板语法,另一个使用Djang ...
- cycle标签和random两种方式美化表格
一:cycle标签实现给表格变色 1. <style>标签里写好需要的颜色 2. 在要变色的地方(行/列)加固定的语句,按照顺序依次执行 代码: <!DOCTYPE html> ...
- 转:django模板标签{% for %}的使用(含forloop用法)
django模板标签{% for %}的使用(含forloop用法) {% %}虽然这个是写在html中,但是这里边写的是服务端代码 在django模板标签中,{% for %} 标签用于迭代序列 ...
- Django 模板标签[转]
Django 模板标签if/else 标签 基本语法格式如下: {% if condition %} ... display{% endif %} 或者: {% if condition1 % ...
- Django 自定义标签与过滤器报错 No module named 'templatetags'
Django 自定义标签与过滤器报错 按照网上的教程如果想使用自定义的标签与过滤器就得往settings.py中添加下列数据 TEMPLATES = [ { 'BACKEND': 'django.te ...
- django 自定义标签
Context和RequestContext都能被Template 进行render RequestContext类接受reqest,字典,processors 实例化.并被TEMPLATE_CONT ...
- Django 学习第四天——Django 模板标签
一.模板标签: 作用:标签在渲染的过程中提供任意的逻辑:例如 if for...in... 等 标签语法:由 {% %} 来定义的:例如:{% tag %}xxx{% endtag %} 常用标签: ...
- python的Web框架,Django模板标签及模板的继承
模板标签 在传递数据的时候,会有大量的数据展示在浏览器上,而数据会是动态变化的,在html的编写中,数据也是需要动态的,而不能是写死的,如果动态展示呢. 给定的例子数据 views传递数据给html ...
随机推荐
- JavaOOP项目 CMS内容管理系统
数据库里创建一个News表,要有标题.作者.时间.内容等列. 1:首先要使用JDBC进行数据库连接,得先在项目里新建一个Folder,把Sqlserver 的驱动jar包导入. 2:使用MyEclip ...
- Android中实现两次点击返回键退出本程序
1,当用户使用我们的app的时候,有时候无意的或者不是有心的按下了我们的返回键,这时候为了更好的用体验,我们需要让用户再一次确定一下,以便判断用户的真实意图 代码如下: //该功能实现退出时提示的功能 ...
- 3. 星际争霸之php设计模式--简单工厂模式
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- 由linux下的多进程编程引发的关于进程间隔离的思考
源代码放到了三个文件中: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include & ...
- SQL数据库之变量
--学习SQL数据库,变量是必须要掌握的概念,系统变量就是变量中最重要的变量之一,下面是SQL中系统变量的应用实例 use AdventureWorksDW exec sp_addtype 'char ...
- hibernate笔记02
- iOS - 代码查看控制台打印内存使用情况:
1.先导入: #import <mach/mach.h> 2.写此方法.单位为兆(M). void report_memory(void) { struct task_basic_info ...
- linux常用命令简单介绍(netstat,awk,top,tail,head,less,more,cat,nl)
1.netstat netstat -tnl | grep 443 (查看443端口是否被占用) root用户,用netstat -pnl | grep 443 (还可显示出占用本机443端口的进程P ...
- zabbix监控mysql主从
最近在公司搭建了zabbix监控系统,现在需要用zabbix来监控mysql的主从同步情况 现在说一下配置的详细步骤: 1.首先给mysql分配一个监控的账号: mysql> grant rep ...
- linux cache and buffer【转】
转自:http://blog.csdn.net/turkeyzhou/article/details/6426738 版权声明:本文为博主原创文章,未经博主允许不得转载. Linux下对文件的访问和设 ...