准备阶段

在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

最新文章

  1. 一个print的简单错误
  2. 数据库基础知识(1)--数据库php连接
  3. IIS7中配置FastCGI运行PHP
  4. 做最好的日期控件,My97 DatePicker 4.8 Beta4
  5. Protocol and Delegate
  6. jquery 仿手机屏幕切换界面效果
  7. Oracle RAC OCR 的管理与维护
  8. [转载]值得推荐的C/C++框架和库
  9. 开放计算平台——数据仓库(Hive)权限控制
  10. java Zip文件解压缩
  11. python常见的特异点
  12. linux 运维常用工具表
  13. Beta冲刺置顶随笔
  14. Appium环境搭建-完整版
  15. anaconda的使用总结
  16. CentOS7配置gradle,或配置maven
  17. Android的系统属性:build.propSystemProperties
  18. 中介模型,cbv视图,和查询优化
  19. 《剑指offer》第五十八题(左旋转字符串)
  20. Scrum_Sprint

热门文章

  1. leetcode 数组 (python)
  2. C#简单工厂模式和单列设计模式潜要解析
  3. 郝斌_GUI
  4. oracle ogg 单实例单向简单搭建测试(oracle-oracle)
  5. 如何面对这个残酷的世界?——Java模拟
  6. scala加载spark MLlib等所有相关jar的问题
  7. 图解 SQL 里的各种 JOIN
  8. Oracle 修改数据文件路径的方法
  9. ubutu16.04编译安装apache
  10. 秒懂Vuejs、Angular、React原理和前端发展历史