for css
<ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} #结束 </ul>
for...emptyhtml
<ul> {% for user in user_list %} <li>{{ user.name }}</li> {% empty %} <li>空空如也</li> {% endfor %} </ul>
if,elif 和elsepython
{% if user_list %} 用户人数:{{ user_list|length }} {% elif black_list %} 黑名单数:{{ black_list|length }} {% else %} 没有用户 {% endif %}
也能够有if 和 elsedjango
{% if user_list|length > 5 %} 七座豪华SUV {% else %} 黄包车 {% endif %}
if语句支持 and、or、 ==、>、<、!=、<=、>=、in、not in、is、is not判断.app
1.母版spa
就是一个普通的HTML文件,提取多个页面的公共部分减小代码量 修改十分方便code
[注:除了公共部分,母版对应子页面须要更改的地方用{% block page-main%}内容{%endvlock} htm
]blog
2.继承(使用)继承
在子页面中
{% entends "base.html"%}
{% block page-mian%}
修改内容
{%endblock%}
注意:还会有个小问题,
就是边侧那里, 按钮是死的,这就须要,在html 按钮输入那里, class = {% block pub_active%}active{%endblock%}
子页面也须要加上
3.注意事项:
1.把{% extends 'base.html'%}
2.修改的内容写在block中,写在外面不显示
3.{% extends name%} name应该是变量或者是字符串 继承母版的名字
4.母版中定义多个block块, 通常还有 js 块和css块
4.组件
1.就是一小段HTML代码 多个页面都用到的内容 nav.html
2.在任意的模版中使用
{% include "nav.html" %}
5.静态文件相关
1.{% load staticfiles %}
2.{% static 'css文件路径' %}
还有第二种方法: {%get_static_prefix%}~~~文件路径
6. 静态文件相关
{% load static %}
{% static 'css/pub.css' %} —— 》 去settings拿STATIC_URL,和css/pub.css拼接
—— 》 /static/css/pub.css
{% get_static_prefix %} —— 》 去settings拿STATIC_URL
{% load static %}
<img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!" />
或者
{% load static %} {% get_static_prefix as STATIC_PREFIX %} <img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!" /> <img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!" />
{% get_static_prefix %}css/pub.css
7. 自定义simple_tag和inclusion_tag
1. 在app下建立templatetags的python包
2. 在templatetags建立py文件 ——》 mytags.py
3. 在mytags写代码
from django import template
register = template.Library()
@register.filter(name='dsb')
def add_sb(value,arg):
return ....
@register.simple_tag
def add_sb(arg1,arg2,*args,**kwargs):
return ....
@register.inclusion_tag('show_li.html') def show_li(n): return {'num': range(1, n + 1)}8. 在模板中使用 {% load mytags %} {{ 变量|dsb:'canshu' }} {% add_sb '' '' %} {% show_li 5 %}