zoukankan      html  css  js  c++  java
  • 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把数据渲染出来
    
    
  • 相关阅读:
    USACO training course Mother's Milk /// DFS(有点意思) oj10120
    USACO training course Checker Challenge N皇后 /// oj10125
    USACO 2013 January Silver Painting the Fence /// oj23695
    关于priority_queue和sort()对结构体数组的排序
    USACO 2012 March Silver Tractor /// 优先队列BFS oj21567
    NEERC 2015 Adjustment Office /// oj25993
    合并石头(直线+圆圈+强化+优化)
    可持久化树模板
    1047 邮票面值设计 (DFS+DP)
    多线程DP (要一起行动才可以)
  • 原文地址:https://www.cnblogs.com/xinzaiyuan/p/12382858.html
Copyright © 2011-2022 走看看