zoukankan      html  css  js  c++  java
  • django的自定义约束

    准备阶段

    在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.

     在app中创建templatetags模块(模块名只能是templatetags)

    后端代码:

    1.导入需要的模块

    from  django.template import Library

    register=Library()   提醒自己:只能是register

    2.定义自定义过滤器

    (1)把数据和页面结合起来不分离

    方法一:

    @register.inclusion_tag(web/menu.html交给渲染的html页面)

    使用函数构造方法

    def get_menu_styles(request):

    书写逻辑

    permission_menu_list=request.session.get("permission_menu_list")
      for item in  permission_list:
        if re.search('^{}$'.format(item["url"]),request.path)
          item["class"] = "active"
      return{"permission_menu_list":permission_menu_list}

    渲染页面代码:

    <div class="static-menu">
    
            {% for item in permission_menu_list %}
    {#            拿到权限菜单的url,图标,和显示的文本#}
                <a href="{{ item.url }}" class="{{ item.class }}">
                    <span class="icon-wrap"><i class="fa {{ item.icon }}"></i></span> {{ item.title }}
                </a>
            {% endfor %}
    
    </div>

    显示到浏览器的代码:

    {% load web %}
    {% get_menu_styles request %}

    方法二:

    准备:

    导入模块
    
    from django.utils.safestring import mark_safe
    from django.template import Library
    register =Library()

    1.定义一个乘法计算
    @register.lter
    def mul(x,y)
      return x*y
    2.定义一个a标签
    def tag(val)
    return mark_safe("<a> %s</a>" %val)
    3.定义一个nb点的乘法
    register.simple_tag
    def mul_tag(x,y,z)
      return x*y*z
  • 相关阅读:
    Leetcode 811. Subdomain Visit Count
    Leetcode 70. Climbing Stairs
    Leetcode 509. Fibonacci Number
    Leetcode 771. Jewels and Stones
    Leetcode 217. Contains Duplicate
    MYSQL安装第三步报错
    .net 开发WEB程序
    JDK版本问题
    打开ECLIPSE 报failed to load the jni shared library
    ANSI_NULLS SQL语句
  • 原文地址:https://www.cnblogs.com/wqzn/p/9961898.html
Copyright © 2011-2022 走看看