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 %}