template的两大功能
- 编辑login.html
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test001</title>
<script src={% static "jquery-1.8.3.min.js" %}></script>
</head>
<body>
{% for item in obj_li %}
<div>
{% if item.name == 'wu' %}
<span id="test">{{ item.name }}</span>
<span>{{ item.password }}</span>
{% endif %}
</div>
{% endfor %}
</body>
</html>
<style>
#test{
width: 20px;
height: 30px;
}
</style>
<script>
$('#test')
</script>
- 变量的过滤器使用
# 1 add : 给变量加上相应的值
#
# 2 addslashes : 给变量中的引号前加上斜线
#
# 3 capfirst : 首字母大写
#
# 4 cut : 从字符串中移除指定的字符
#
# 5 date : 格式化日期字符串
#
# 6 default : 如果值是False,就替换成设置的默认值,否则就是用本来的值
#
# 7 default_if_none: 如果值是None,就替换成设置的默认值,否则就使用本来的值
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test001</title>
<script src={% static "jquery-1.8.3.min.js" %}></script>
</head>
<body>
{% for item in obj_li %}
<div>
{% if item.name == 'wu' %}
<span id="test">{{ item.name|upper }}</span>
<span>{{ item.password|add:3 }}</span>
{% endif %}
</div>
{% endfor %}
{{ test }}
<br>
{{ test|cut:' ' }}
<br>
{{ d }}
<br>
{{ d|date:'Y-m-d' }}
</body>
</html>
<style>
#test{
width: 20px;
height: 30px;
}
</style>
<script>
$('#test')
</script>
- simple_tag的内容,app中新建templatetags包,新建my_tag.py文件
my_tag.py的文件内容
from django.template import Library
register=Library()
@register.filter
def filter_func(x,y):
return x+y
@register.simple_tag
def simple_func(t):
return '2018-12-23'
login.html文件内容
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test001</title>
<script src={% static "jquery-1.8.3.min.js" %}></script>
</head>
<body>
{% for item in obj_li %}
<div>
{% if item.name == 'wu' %}
<span id="test">{{ item.name|upper }}</span>
<span>{{ item.password|add:3 }}</span>
{% endif %}
</div>
{% endfor %}
{{ test }}
<br>
{{ test|cut:' ' }}
<br>
{{ d }}
<br>
{{ d|date:'Y-m-d' }}
{% load my_tag %}
{{ test|filter_func:'666' }}
</body>
</html>
<style>
#test{
width: 20px;
height: 30px;
}
</style>
<script>
$('#test')
</script>
模板继承就是先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载。
- 项目中的templates新建base.html
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>base</title>
<script src={% static "jquery-1.8.3.min.js" %}></script>
</head>
<body>
<H1>I am top menu</H1>
<div>
{% block content %}
{% endblock %}
</div>
</body>
</html>
- 修改login.html
{% extends "base.html" %}
{% block content %}
{% for item in obj_li %}
<div>
{% if item.name == 'wu' %}
<span id="test">{{ item.name|upper }}</span>
<span>{{ item.password|add:3 }}</span>
{% endif %}
</div>
{% endfor %}
{{ test }}
<br>
{{ test|cut:' ' }}
<br>
{{ d }}
<br>
{{ d|date:'Y-m-d' }}
{% load my_tag %}
{{ test|filter_func:'666' }}
</body>
</html>
<style>
#test{
width: 20px;
height: 30px;
}
</style>
<script>
$('#test')
</script>
{% endblock %}