• 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
  • 相关阅读:
    Start The Life of Blog
    当你在寻找某件东西时,眼睛是闭着的
    终于升成512m,以此篇纪念一下
    昨天 acm 分组
    FAQ
    VNC
    Telnet
    FTP
    DNS
    Samba
  • 原文地址:https://www.cnblogs.com/wqzn/p/9961898.html
Copyright © 2020-2023  润新知