django的自定义约束
2024-09-25 09:35:47
准备阶段
在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
最新文章
- 一个print的简单错误
- 数据库基础知识(1)--数据库php连接
- IIS7中配置FastCGI运行PHP
- 做最好的日期控件,My97 DatePicker 4.8 Beta4
- Protocol and Delegate
- jquery 仿手机屏幕切换界面效果
- Oracle RAC OCR 的管理与维护
- [转载]值得推荐的C/C++框架和库
- 开放计算平台——数据仓库(Hive)权限控制
- java Zip文件解压缩
- python常见的特异点
- linux 运维常用工具表
- Beta冲刺置顶随笔
- Appium环境搭建-完整版
- anaconda的使用总结
- CentOS7配置gradle,或配置maven
- Android的系统属性:build.propSystemProperties
- 中介模型,cbv视图,和查询优化
- 《剑指offer》第五十八题(左旋转字符串)
- Scrum_Sprint