一、母版
在实际应用中,在开发一个网站时,从首页到主页、到目录页,等等!有时候,我们大部分基础网页头、边框、侧边框、基础css、js等复用性很高,如果每一个html都要独立去写的话,就太麻烦了。
而把这些很多页面都共用的东西抽取出来,使用面向对象的思想,让子版去继承这些母版,然后只需要自己不同就好了!而在Django 内是怎么实现的呢
1.1 模版语言
- {{ item }}
- {% for item in item_list %} {{ item }} {% endfor %}
forloop.counter #从1开始计数自增 1 2 3 4 ....
forloop.revcounter #反转计数自减
forloop.first #是否是第一个循环
forloop.last
- {% if ordered_warranty %} {% else %} {% endif %}
- 母板:{% block title %}{% endblock %} #母版中预留位置
- 子板:{% extends "base.html" %} #子版引入母版
{% block title %}{% endblock %} #子版中对应母版预留位置
帮助方法:
- {{ item.event_start|date:"Y-m-d H:i:s"}}
- {{ bio|truncatewords:"30" }} #截取30个字符
- {{ my_list|first|upper }}
- {{ name|lower }}
1.2 自定义simple_tag
1. 在于app同名的文件夹下创建名为:templatetags文件夹
-
在该文件夹中穿件任意名称的自己的py文件
-
在py文件中引入:
from django import template rom django.utils.safestring import mark_safe #必须创建名称为:register 的实例 register = template.Library() #装饰到自己的函数上 @registrer.simple_tag def my_fun(*args): """do something with *args""" return result @register.simple_tag def my_input(id,arg): result = "< input type='text' id='%s' class='%s'/>" %(id,arg,) return mark_safe(result)
-
在模版中下载自己的文件
{% load 文件名 %} -
模版中使用该函数
{% my_fun arg1 arg2 %}