Django模板继承
Django 模板继承
(1)、在一个完整的HTML里面写入
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
</head
>
<body
>
{% block head
%}-------------->继承的格式(有开始,有结束)
------(继承头部)
<a href
="#">电器
</a
>
<a href
="#">日用品
</a
> 可以是动态的
<a href
="#">水果
</a
>
{% endblock head
%} -------------->(结束头部继承
)
<hr
>
{% block body
%}-------------->继承的格式(有开始,有结束)
------(继承内容)
{% endblock body
%}-------------->(结束内容继承
)
<hr
>
{% block foot
%}-------------->继承的格式(有开始,有结束)
------(继承尾部)
弘扬社会主义思想
{% endblock foot
%}-------------->(结束尾部继承
)
</body
>
</html
>
(2)、在另一个HTML里面只需写入
1.--- {% extends
'base.html' %}------>固定格式加引号
2.--- 只需要写自己要继承哪个部分的内容即可,如
-
{% block body
%}
内容
------内容
{% endblock body
%}
Django过滤器
二、过滤器
1、Safe
: 禁用转义,应用场景
---可以把带标签或者富文本编辑器的内容显示出来就可以用 例
---{{ content
| safe
}}
2、模板内置变量:
{{ forloop
.counter
}} -----显示序号
3、列表(元组,字典)长度:
{{ list | length
}}
4、默认值:
{{ abc
| default
:'你好--默认值'}}---abc没有的情况下
自定义过滤器
| 竖线左函数,右过滤器
1、在Django的子应用中,创建一个文件夹templatetags(templatetags的文件夹中包含__init__文件
)。
2、再在templatetags的文件夹中创建一个自定义py文件
(
1):导包:
from django
.template
import Library
(
2):创建实例
--括号:register
= Library
()
@register
.filter('addyuan')
(
3):
def AddYuan
(value
):
Return
str(value
) + '元'
在HTML里用过滤器需要
{% load myfilter
%}
myfilter代表templatetags中的自定义的一个文件,
然后就可以用别名
----addyuan
----例
{{123 | addyuan
}}
------还需要在settings里apps部分里把templatetags导进来
weblist
.templatetags
自定义标签
From datetime
import datetime
1. 简单标签
--------输出系统当前时间
装饰:@register
.simple_tag
()
括号里不指定默认
---time_format
函数:
def thistime
(time_format
):
返回:
return datetime
.now
().strftime
(time_format
)
HTML里:
{% thistime
'%Y-%m-%d %H:%M:%S%p'%}
(
2):
装饰:@register
.simple_tag
(takes_context
=True)
Def demo
(context
):
Return context
['message'] + '|今天天气不错'
message在py文件将内容写好,在HTML输出
{% demo
%} 会输出原有的
+|今天天气不错
2.内含标签
装饰:@register
.inclusion_tag
('goods.html')
函数:
def viewgoods
():
List
= ['苹果','香蕉','梨']
Return
{'abc':list}
新建模板goods
.html显示商品列表
显示:
{% for I
in abc
%} {{i
}} {% endfor
%}
注意:
{% viewgoods
%}写在继承模板的里面可以利用goods
.html把数据渲染出来