django 1.8.2 第六章:Django模板标签(2)

模板系统除了有传输html之外还具有用Python在html当中添加内容的功能
 
以下是模板的语法
变量
变量的值是来自context中的输出, 这类似于字典对象的keys到values的映射关系。
变量是被 {{ 和 }}括起来的部分,例如:
My first name is {{ first_name }}. My last name is {{ last_name }}.
如果使用一个 context包含 {'first_name': 'John', 'last_name': 'Doe'}, 这个模板渲染后的情况将是:
My first name is John. My last name is Doe.
字典查询,属性查询和列表索引查找都是通过一个点符号来实现:
{{ my_dict.key }} {{ my_object.attribute }} {{ my_list.0 }}
如果一个变量被解析为一个可调用的,模板系统会调用它不带任何参数,并使用调用它的结果来代替这个可调用对象本身。
 
 
标签
标签在渲染的过程中提供任意的逻辑。
这个定义是刻意模糊的。例如,一个标签可以输出内容,作为控制结构,例如“if”语句或“for”循环从数据库中提取内容,甚至可以访问其他的模板标签。
Tags是由{%和 %} 来定义的,例如:
{% csrf_token %}
大部分标签都接受参数
{%< cycle 'odd' 'even' %}
部分标签要求使用起始和闭合标签:
{%< if user.is_authenticated %}Hello, {{ user.username }}.{%< endif %}
Django内置标签参考文档编写定制化标签指引都可以参阅。
 
 
过滤器
过滤器会更改变量或标签参数的值。
看上去像这样:
{{ django|title }}
例如在 {'django': 'the web framework for perfectionists with deadlines'}这个context中,django变量的值都是小写,经title过滤器渲染后则变成:
The Web Framework For Perfectionists With Deadlines
有些过滤器看起来更像参数:
{{ my_date|date:"Y-m-d" }}
 
include 加载
 
 
 
extends 继承
 
 
 
posted on 2016-12-12 17:54  enet01  阅读(141)  评论(0)    收藏  举报