1.Django的模板语言(简而言之,字符串替换)
1.目前为止已经学过的模板语言:
1.{{ name }} ------>变量
2. for 循环:
{% for i in book_list %}
{{ forloop.counter }}
{{ forloop.last }}
{{ i }}
{% endfor %}
3.if 判断:
{% if 10 > 5%}
要执行的操作
{% else %}
要执行的操作
{% endif %}
4.if 值 in 判断条件:
{% if name in name_list %}
要执行的操作
{% endif % }
案例案例:
url(r'^t_test/',views.template_test)
# Django 模板语言测试代码
def template_test(request):
name = "小黑"
age = 18
name_list = [1, 2, 3, 4, 5, 6]
name_dict = {"first_name": "小黑", "last_name": "小白"}
p1 = Person("Person对象1", 20)
p2 = Person("Person对象2", 25)
p_list = [p1, p2]
return render(
request,
't_test.html',
{
"name": name,
"age1": age,
"name_list": name_list,
"name_dict": name_dict,
"person1": p1,
"person2": p2,
"p_list": p_list
}
)
# 模板语言测试的类 class Person(object): def __init__(self, name, age): self.name = name self.age = age def dream(self): return "{}在做梦".format(self.name) # 控制对象输出的格式 def __str__(self): return "<Person Object:{}>".format(self.name) # python2中的方法 def __unicode__(self): return "<Person Object:{}>".format(self.name)
案例前端:
<h1>这是模板语言测试的案例</h1>
{{ name }}
<hr>
{{ age1 }}
<hr>
{{ bucunzai }}
{{ bucunzai|default:"这个变量并没有传值,使用的是默认值" }}
<hr>
{{ name_list }} {#得到一个列表#}
<ul>
{% for name in name_list %}
<li>name</li>
{% endfor %}
</ul>
{{ name_list.0 }}
<hr>
{{ name_dict }}
{{ name_dict.first_name }} | {{ name_dict.last_name }}
<hr>
{{ person1 }}
{{ person1.name }} {{ person1.age}}
{{ person1.dream }}
<hr>
{{ p_list }}
{{ p_list.1.name }}
结果: