Django模板语言
变量
为了便于演示,以下是views.py的代码
def test(request): num = [1,2,3,4] dir = {'lemon':'luouo','banana':'haha','apple':'bubu'} hub = [(1,2),(3,4),(5,6)] class Commodity(object): def __init__(self,name,price): self.name=name self.price = price def feel(self): return '%s is too expensive' %self.name house = Commodity('house','One hundred million') car = Commodity('car','One hundred thousand') dream=[house,car] return render(request,'test.html',{'Num':num,'Dir':dir,'Dream':dream,'Hub':hub})
html中的用法
{{ Num }} #显示[1,2,3,4] {{ Num.0 }} #取第一个值 {{ Dir.lemon }} #取字典中lemon的值 {{ Dream.0.name }} #取对象name的属性 {{ Dream.0.feel }} #取对象的feel方法的返回值 house is too expensive
标签
- if标签
{% if Num.0 == 1 %} <h1>等于一</h1> {% endif %}
其中可以增加类似{% elif Num.1 == 2 %}或{% else %}的逻辑判断
- for标签
#正向迭代 {% for foo in Num %} <h1>{{ foo }}</h1> {% endfor %}
#反向迭代 {% for foo in Num reversed %} <h1>{{ foo }}</h1> {% endfor %}
#二元组输出 {% for a,b in Hub %} <h1>{{ a }}{{ b }}</h1> {% endfor %}
#对字典解包 {% for a,b in Dir.items %} <h1>{{ a }}----------{{ b }}</h1> {% endfor %}
{% empty %} #在for循环中,定义列表位空输出的内容 {{ forloop.counter }} #for循环中的计数器,从1开始 {{ forloop.counter0 }} #for循环中的计数器,从0开始 {{ forloop.revcounter }} #for循环中的倒数计数器,从元素总个数开始直到1 {{ forloop.revcounter0 }} #for循环中的倒数计数器,从元素总个数-1开始直到0 {{ forloop.first }} #一个布尔值,当第一次for循环的时候为True {{ forloop.last }} #一个布尔值,最后一个for循环的时候为True