玩个简单的Django模板继承,过滤器。

mac2024-05-27  36

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把数据渲染出来
最新回复(0)