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 %}



二、过滤器

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把数据渲染出来

猜你喜欢

转载自www.cnblogs.com/xinzaiyuan/p/12382858.html
今日推荐