首页 > 其他 > 详细

django常用的内建的模板标签和过滤器

时间:2014-02-15 16:35:45      阅读:309      评论:0      收藏:0      [点我收藏+]
现在有一个News类,用来存储新闻信息。它具有NewsTitle,NewsContent,NewsDate和NewsSource等几个属性。newslist是一个news对象的序列。


模板标签


include

载入一个模板,并根据上下文渲染它。用于在一个模板中包含其他模板。

extends

标记当前模板扩展一个父模板。
这个标签有两种用法:
1. {% extends "xxx.html" %} 直接使用要扩展的父模板的名字“xxx.html”
2. {% extends variable %} 用变量variable的值来指定父模板,如果变量是一个字符串,Django会把字符串的值当做父模板的文件名,如果变量是一个Template对象,Django会把这个对象作为父模板。
在使用extends标签时,必须保证其为模板的第一个模板标记。否则,模板继承将不起作用。

block

{% block %}标签告诉模板引擎,子模板可以重载这些部分。一般来说,如果发现在多个模板之间拷贝代码,则应该考虑将该代码放置到父模板的某个block中。基础模板中的{%block%}越多越好。子模板不必定义父模板中所有的代码块,只需要用合理的缺省值对一些代码块进行填充,然后只对子模板所需要的代码块进行重定义。不可以在同一个模板中定义多个同名的block。
{% block body_content %}
{% endblock%}

for

轮询数组中的每一个元素
{{% for news in newslist %}}
{{% endfor %}}

在循环过程中 for 循环会设置以下的一系列变量:

Variable Description
forloop.counter 当前循环次数 (1-indexed)
forloop.counter0 当前循环次数 (0-indexed)
forloop.revcounter 倒序循环时当前循环次数(1-indexed)
forloop.revcounter0 倒序循环时当前循环次数(0-indexed)
forloop.first 如果当前循环是循环过程的第一次则为True
forloop.last 如果当前循环是循环过程的最后一次则为True
forloop.parentloop 对嵌套循环, 当前循环之上的循环

if

if标签用来判断一个变量是否为真,如果为真,则输出区块中的内容。
{{% if news.NewsTitle %}}
<p>{new.NewsTitle}</p>}
{{% else %}}
<p>新闻标题为空</p>
{{% endif %}}

ifequal

如果两个参数相等,输出该块的内容。
{% ifequal type "新闻"%}
   输出新闻内容
{% endifequal %}

ifnotequal

和ifequal类似,不过它用来测试两个参数是不相等的。

firstof

输出传入的第一个不是False的变量,如果被传递的变量都为False,则什么也不输出。
{% firstof var1 var2 var3 %}
这等同于如下内容:
{% if var1 %}
    {{var1}}
{% else %}{% if var2 %}
    {{var2}}
{% else %}{% if var3 %}
    {{var3}}
{% endif %}{% endif %}{% endif %}

过滤器


add

向变量中添加值
{{ NewsTitle|add:"云计算"}}

slice

返回字符串的指定长度的子串,如下所示,提取出NewsContent的前200个字符
{{ NewsContent | slice:":200" }}

first

返回列表中的第一个元素。

length

返回值的长度。


upper

将一个字符串完全转化为小写。


django常用的内建的模板标签和过滤器

原文:http://blog.csdn.net/magicharvey/article/details/12582299

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!