zoukankan      html  css  js  c++  java
  • Django--知识补充

    自定义标签或过滤器

    渲染变量的方法(过滤器:修改数据或格式转换)

    {{ var | add }}
    {{ var | date:"Y-m" }} 
    {{ var | safe }}
    

    渲染标签的方法

    {% tag_name %}
    {% for %}……{% endfor %}
    {% csrf_token %}
    

    自定义

    需要在应用目录下创建templatetags的包
    然后在里面创建Python脚本。

    自定义过滤器

    参数必须是两个

    from django import template
    # 实例化的名字必须是register
    register = template.Library()
    
    @register.filter
    def func_filter(var1,var2):
        ……
        return ……
    
    # 使用时:
    {{ var | func_filter:1 }}
    

    自定义标签

    无参数限制

    @register.simple_tag
    def func_tag(var1,var2):
        ……
        return ……
    
    # 使用方法
    {% func_tag var 2 %}
    

    加载自定义的

    #在HTML文件开头写上
    {% load my_tags %}
    

    使用include引用

    在页面中有独立固定模块时使用。
    在template目录下创建include_demo.html,不需要HTML的结构,在其中直接定义标签和内容。
    引用时使用 {% include 'include_demo.html' %}

    extend时变量获取问题

    views里写一个函数用来拿这些变量,供别的函数调用。会导致数据和样式脱离。
    把固定部分且有变量的拆成一个单独的模块。
    在需要引用的页面中直接include引入模块还是拿不到变量。

    使用自定义可引用标签解决

    在templatetags里的自定义tag脚本里写

    @register.inclusion_tag("blog/menu.html")
    def get_menu(user):
        ……
        return {……}
    

    在渲染标签前线执行函数,拿到返回字典传给引入的模块。

    前段使用它 {% get_menu user %}
    view函数在返回时都要返回一个user变量供标签使用。

  • 相关阅读:
    javaTemplates-学习笔记三
    索引
    WTForms
    session权限限制
    vue-cli脚手架项目中组件的使用
    vue补充
    表单输入绑定
    vue指令系统介绍
    vue-cli脚手架安装和webpack-simple模板项目生成
    rest-framework之视图
  • 原文地址:https://www.cnblogs.com/jinyudong/p/8560146.html
Copyright © 2011-2022 走看看