排序

1、forloop.counter 表示循环的次数,它从1开始计数,第一次循环设为1

{% for item in todo_list %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}

2、forloop.counter0 表示循环的次数,它从0开始计数,第一次循环设为0

{% for item in todo_list %}
<p>{{ forloop.counter0 }}: {{ item }}</p>
{% endfor %}

3、forloop.revcounter  示循环中剩下的items数量,第一次循环时设为items总数,最后一次设为1

{% for item in todo_list %}
<p>{{ forloop.revcounter }}: {{ item }}</p>
{% endfor %}

4、forloop.revcounter0 类似于forloop.revcounter,但它是表示的数量少一个,即最后一次循环时设为0

{% for item in todo_list %}
<p>{{ forloop.revcounter0 }}: {{ item }}</p>
{% endfor %}

5、forloop.first 当第一次循环时值为True,在特别情况下很有用)

{% for object in objects %}
{% if forloop.first %}<li class="first">{% else %}<li>{% endif %}
{{ object }}
</li>
{% endfor %}

6、forloop.last 当最后一次循环时值为True

{% for link in links %}{{ link }}{% if not forloop.last %} | {% endif %}{% endfor %}

7、forloop.parentloop 在嵌套循环中表示父循环的forloop:

{% for country in countries %}
<table>
{% for city in country.city_list %}
<tr>
<td>Country #{{ forloop.parentloop.counter }} </td>
<td>City #{{ forloop.counter }}</td>
<td>{{ city }}</td>
</tr>
{% endfor %}
</table>
{% endfor %}

继承 

1、模板继承允许你建立一个基本的”骨架”模板, 它包含你所有最常用的站点元素 并 定义了一些可以被子模板覆盖的block

父模板(master.html):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
<style>
.body-header{
background-color: black;
}
</style>
</head>
<body>

HTML页面:

{# 指定继承的模板 #}
{% extends 'master.html' %} {# 指定替换的位置 #}
{% block title %}
tp1
{% endblock %} {# 指定替换的位置 #}
{% block content %}
<p>tp1</p>
{% endblock %}

注:一个html页面只能继承一个父模板,不能继承多个

2、模板导入定制的组件include

组件(tag.html):

form>
<input type="text" name="user"/>
<input type="submit" value="提交"/>
</form>

HTML页面:

{# 指定继承的模板 #}
{% extends 'master.html' %} {# 指定替换的位置 #}
{% block title %}
tp1
{% endblock %} {# 指定替换的位置 #}
{% block content %}
<p>tp1</p> {# 导入单独组件 #}
{% include 'tag.html' %}
{% endblock %}

  

Simplelistfilter

有时候我们需要在html上对后台渲染的页面进行二次处理,比如把字符串的首字母大写、字符进行计算操作等

1、django默认自带方法

{{ item.event_start|date:"Y-m-d H:i:s"}}    #日期格式进行转换
{{ bio|truncatewords:"30" }} #取字符串前30位
{{ my_list|first|upper }} #第一个字符大写
{{ name|lower }} #所有字符小写

2、自定义simple_tag、filter

① 在app中创建templatetags文件夹

② templatetags中创建任意 .py 文件,如:handle.py

from django import template
from django.utils.safestring import mark_safe register = template.Library() @register.simple_tag()
def sub(a1,a2):    #能添加多个参数 return a1 + a2 @register.filter()  
def lzl(a1,a2):    #只能传入两个参数 return a1 + a2

③ 在settings中配置当前app,不然django无法找到自定义的simple_tag

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cmdb',
)

④ 导入和使用simple_tag、filter

{# 导入py文件名 #}
{% load handle %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>{{ name|lower }}</div>
<div>{{ name|upper }}</div> {% sub 1 2 %} {{ 'hello'|lzl:'world'}}
</body>
</html> {#页面内容#}
{#3 helloworld#}

  

3、django数据库choice获取字段

device_status_choices = (
(1, '上架'),
(2, '在线'),
(3, '离线'),
(4, '下架'),
)
device_type_id = models.IntegerField('设备类型',choices=device_type_choices, default=1) <td colspan="4">{{ response.data.asset.get_device_status_id_display }}</td>

  

详细-》》http://www.cnblogs.com/mfryf/archive/2012/07/17/2595019.html

《第二十章》

Python开发【Django】:模板语言的更多相关文章

  1. django模板语言的注释

    就像HTML或者Python,Django模板语言同样提供代码注释. 注释使用 {# #} : ? 1 {# This is a comment #} 注释的内容不会在模板渲染时输出. 用这种语法的注 ...

  2. 6月15日 python学习总结 Django模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  3. Python - Django - 模板语言之变量

    前言: 在 Django 模板语言中变量用 {{ }},逻辑用 {% %} 在 urls.py 中添加对应关系 from django.conf.urls import url from django ...

  4. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  5. Django模板语言相关内容 Djan

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  6. Django——模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  7. Django 模板语言 路由 视图

    . 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...

  8. Django模板语言(常用语法规则)

    Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...

  9. django 模板语言之 filter 自定义模板

    可以自己写python函数放在模板语言里用 这种方法是django里面的 filter {{ item.event_start|date:"Y-m-d H:i:s"}} {{ bi ...

  10. Django模板语言与视图(view)

    常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...

随机推荐

  1. DLL接口自动化测试总结

    1. DLL接口测试方法介绍 在最近测试的项目中,系统给业务端提供DLL文件,业务端通过DLL文件中的C++接口实现系统功能,这就需要对DLL中的C++接口进行详细功能测试. 本文主要介绍项目测试中使 ...

  2. 加L“”

    error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型 初学.net,编写如下代码运行,竟然提示错误(error C2665: “AfxMessageBo ...

  3. 安装SQL Server 2008数据库(带完整图解)

    方法/步骤   1 双击sql server 2008的.exe安装文件,进入[SQL Server 安装中心]. 2 点击界面左侧的[安装],然后点击右侧的[全新SQL Server 独立安装或向现 ...

  4. Python图像处理库PIL的ImageSequence模块介绍

    ImageSequence模块包括了一个wrapper类,它能够让用户迭代訪问图形序列中每一帧图像. 一.ImageSequence模块的函数 1.  Iterator 定义:ImageSequenc ...

  5. QlikView报表显示连续若干个月内活跃用户的数量

    之前有朋友提到了这样一个需求,要计算三年中每年都有销售记录的客户量,仅仅有近期两年有销售纪录的客户量(假如某个用户2012年和2014年都有记录,在2013年没有则不计算在内).以及近期一年的新增客户 ...

  6. mybatis由浅入深day01_ 7输入映射(7.1传递pojo的包装对象_7.2#{}与${}_7.3传递简单类型_7.4传递pojo对象_7.5传递hashmap)

    7 输入映射 通过parameterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类型. 7.1 传递pojo的包装对象 7.1.1 需求 完成用户信息的综合查询,需要 ...

  7. 超全面的JavaWeb笔记day15<mysql数据库>

    1.数据库的概述 2.SQL 3.DDL 4.DML 5.DCL 6.DQL MySQL 数据库 1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优 ...

  8. GIS-ArcGIS 数据库备份还原

    Create directory sdebak as 'E:\10_DataFile'; alter system set deferred_segment_creation=false; ALTER ...

  9. 连接oracle服务器超慢--原因分析

    连接oracle服务器超慢:有如下原因可能会影响. 网络不好:oracle服务器跟本地网络不好. oracle服务器内存不足:导致反应超慢 监听日志listener.log太大:导致响应超慢. 所以对 ...

  10. iOS 9 分屏多任务:入门(中文版)

    本文转载至 http://www.cocoachina.com/ios/20150714/12555.html 本文由钢铁侠般的卿哥(微博)翻译自苹果官方文档:Adopting Multitaskin ...