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
  • 相关阅读:
    vim 高级使用技巧第二篇
    你所不知道的Html5那些事(一)
    linux设备驱动第三篇:如何实现一个简单的字符设备驱动
    Android Metro风格的Launcher开发系列第二篇
    「BZOJ3123」[SDOI2013]森林
    【模板】左偏树
    「luogu3157」[CQOI2011]动态逆序对
    「luogu3567」[POI2014]KUR-Couriers
    【模板】二逼平衡树
    「luogu3313」[SDOI2014]旅行
  • 原文地址:https://www.cnblogs.com/wqzn/p/9961898.html
Copyright © 2011-2022 走看看