• Django模板


    一、常用语法

      {{  }} 变量

      {%  %}逻辑相关

    二、模板语言filter操作

      1、{{ value|default:'nothing'}} 若没有值传入,则显示nothing

        注:TEMPLATES的OPTIONS可以增加一个选项:string_if_invalid:'找不到',可以替代default的的作用。

      2、filesizeformat

        将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)。例如:{{ value|filesizeformat}}

      3、date日期格式化

        {{value|date:''H-m-d H:i:s''}}  

      4、自定义filter

        (1)首先在app01下创建templatetags文件包

        (2)随意定义一个py文件,内容如下 

    from django import template
    register=template.Library()
    
    @register.filter()
    def add_1(value):
        return value+'tianjia'
    
    @register.filter(name='add')
    def add_2(value):
        return value+'tianjia'
    

        (3)在html界面加载py文件名

          {% load 文件名%}

        (4)重启Django项目

      5、https://www.cnblogs.com/maple-shaw/articles/9333821.html参考链接

    三、csrf_token

      这个标签用于跨站请求伪造保护。

      在页面的form表单里面写上{% csrf_token %}

    四、母版

      我们将html大量重复的代码创作成模板,将灵活代替的位置利用块来代替

      注意:我们通常会在母板中定义页面专用的CSS块和JS块,方便子页面替换。

      母版继承{{% extends " muban.html" %}}

      块继承{% block 块名 %}填充内容{% endblock %}

     五、组件

      1、写一段代码 nav.html

      2、{% include 'nav.html' %}  固定的组件,重复调用可节省代码

    六、静态文件相关

      1.{% load static %} --->获取的是setting中的STATIC_URL的/static/相对路径和相对路径拼接

      2.{% get_static_prefix %}--->获取的是setting中的STATIC_URL的/static/

      举例如下

    {% load static %}
         第一种方式 
         <link href="{% static 'bootstrap-3.3.7/css/bootstrap.css' %}" rel="stylesheet">
         <link href="{% static 'Dashboard Template for Bootstrap_files/dashboard.css' %}" rel="stylesheet">
         <link rel="stylesheet" href="{% static 'font-awesome-4.7.0/css/font-awesome.css' %}">
        第二种方式
        <link href="{% get_static_prefix %}bootstrap-3.3.7/css/bootstrap.css" rel="stylesheet">
        <link href="{% get_static_prefix %}Dashboard Template for Bootstrap_files/dashboard.css" rel="stylesheet">
        <link rel="stylesheet" href="{% get_static_prefix %}font-awesome-4.7.0/css/font-awesome.css">
    

    七、自定义inclusion_tag

      1、在app下创建templatetags的python包 templatetags名字不能变

      2、在包下定义一个python文件 例如 mytag.py

      3、编辑文件

        from django import template

        register =template.Library()

        举例

    from django import template
    
    register = template.Library()
    
    
    @register.filter()
    def add_str(value):
        return value + '_666'
    
    
    @register.inclusion_tag('api/pagenation.html')
    def fun(total, current_num):
        return {'total': range(1, total + 1), 'current_num': current_num}

      4、定义函数

        可以接受参数

        返回一个字典

      5、函数上加上装饰器

        @register.inclusion_tag('需要渲染的页面.html')

      6、函数返回的字典,交给页面渲染

        页面渲染举例:

    <nav aria-label="Page navigation" class="pull-right">
                    <ul class="pagination">
                        <li>
                            <a href="#" aria-label="Previous">
                                <span aria-hidden="true">«</span>
                            </a>
                        </li>
                        {% for num in total %}
                            {% if num == current_num %}
                                <li class="active"><a href="#">{{ num }}</a></li>
                            {% else %}
                                <li><a href="#">{{ num }}</a></li>
                            {% endif %}
                        {% endfor %}
    
                        <li>
                            <a href="#" aria-label="Next">
                                <span aria-hidden="true">»</span>
                            </a>
                        </li>
                    </ul>
                </nav>
    

      7、调用举例: 

    {% load myset %}
     {% fun 5 2 %}
    

      

        

      

  • 相关阅读:
    第9课
    FreeRTOS 定时器组
    FMC—扩展外部 SDRAM
    FreeRTOS 事件标志组
    第8课
    FreeRTOS 系统时钟节拍和时间管理
    第七课 线性表的顺序存储结构
    手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)
    Windows GUI代码与Windows消息问题调试利器
    谈谈数据挖掘和机器学习
  • 原文地址:https://www.cnblogs.com/wszxdzd/p/9756871.html
Copyright © 2020-2023  润新知