Django 模板标签
html页面是静态的页面,要想向html中根据用户输入不同显示不同的界面,需要用到django中的模板标签。
if模板和for模板
{% if condition1 %}
... display 1
{% elif condition2 %}
... display 2
{% else %}
... display 3
{% endif %}
{% for i in alist %}
<li>{{ i.age }}</li>
{% endfor %}
ifequal/ifnotequal 模板
{% ifequal age1 age2 %}
<h1>age1</h1>
{% endifequal %}
如上:如果age1==age2,则显示中间显示的h标签内容,否则不显示
{% ifequal a b %}
<h1>a==b</h1>
{% else %}
<h1>a不等于b</h1>
{% endifequal %}
ifequal 和ifnotequal 可以与else连用
注释标签
{# 这是一个注释 #}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% ifequal a b %}
<h1>a与b相等</h1>
{% else %}
<h1>a与b相等</h1>
{% endifequal %}
</body>
</html>
url(r"^templates$",views.template),
def template(request):
context = {}
context["a"]=10
context["b"]=20
return render_to_response("555.html",context)
修改a=20
2.include标签
{% include 'xxx.html' %}
include标签可以将html文件进行拆分,使得html文件能够复用。
如一个网站,头部和底部一般都是公用的,只有中间部分是不同的,可以将公共的top和底部抽取出来,单独做成一个html,使用时,使用include标签进行引入即可。
top.html
<section>
<h1>顶部导航</h1>
<p>铁马冰河入梦来的博客</p>
<hr>
</section>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% include 'top.html' %}
{% ifequal a b %}
<h1>a与b相等</h1>
{% else %}
<h1>a与b不相等</h1>
{% endifequal %}
</body>
</html>
include top.html
可以include多个html界面
3.extends标签
通过使用extends标签可以继承父页面上的内容。
{% block content %} {% endblock content %}
可以在母模板中添加多个块标签,每个块标签取不同的名称
子模板可通过extends标签继承母模板,对于母模板中的block块,可以重写,也可以不重写
{% extends "base.html" %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>铁马冰河入梦来</title>
</head>
<body>
<h1>首页</h1>
<h1>博客</h1>
{% block blockname %}
<p>django学习框架</p>
{% endblock blockname %}
{% block content %}
<h1>子模板不重写的模块</h1>
{% endblock content %}
<h1>友情链接</h1>
<h1>关于我们</h1>
</body>
</html>
母模板base.html
子模板son.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>子页面</title>
</head>
<body>
<h1>今天是个好日子</h1>
{% extends "base.html" %}
{% block blockname %}
<p>python基础学习</p>
{% endblock blockname %}
</body>
</html>
def extend(request):
return render(request, "son.html")
访问后界面: