根据路飞学城luffycity.com 的crm项目修改的

1 url入口:rbac/urls.py

urlpatterns = [...# 批量操作权限re_path(r'^multi/permissions/$', menu.multi_permissions, name='multi_permissions')  # 自动发现项目中的所有URL...
]

2 配置文件 settings

不用发现的url列表:
AUTO_DISCOVER_EXCLUDE = ['/admin/','/login/',
]

3 自定发现url的组件:rbac/service/router.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'mosson'
import re
from collections import OrderedDict
from django.conf import settings
from django.utils.module_loading import import_string
from django.urls.resolvers import URLResolver, URLPattern # 路由分发:URLResolver。非路由分发:URLPatterndef check_url_exclude(url):"""查看被排除在外的url:param url::return:"""for regex in settings.AUTO_DISCOVER_EXCLUDE:if re.match(regex, url):return Truedef recursion_urls(pre_namespace, pre_url, urlpatterns, url_ordered_dict):"""递归获取url:param pre_namespace: namespace 前缀 以后用于拼接name:param pre_url: url前缀,以后用于拼接url:param urlpatterns: 路由关系列表:param url_ordered_dict: 用于保存递归中获取的所有的url:return:"""for item in urlpatterns:if isinstance(item, URLPattern): #非路由分发 添加到字典url_ordered_dict中if not item.name:   continueif pre_namespace: name = "%s:%s" % (pre_namespace, item.name)else:name = item.nameurl = pre_url + str(item.pattern) #url = url.replace("^", "").replace("$", "")if check_url_exclude(url):# 判断是否admin、login等我们不需要的url,是的话直接跳过continueurl_ordered_dict[name] = {'name':name, 'url':url}elif isinstance(item, URLResolver): # 路由分发, 继续递归if pre_namespace:if item.namespace:namespace = f"{pre_namespace}:{item.namespace}"else:namespace = item.namespace   else:if item.namespace:namespace = item.namespaceelse:namespace = None# 父级没有namespace,自己也没有recursion_urls(namespace, pre_url+str(item.pattern), item.url_patterns, url_ordered_dict)def get_all_url():"""获取所有的url:return:"""url_ordered_dict = OrderedDict()md = import_string(settings.ROOT_URLCONF)# 递归获取所有的urlrecursion_urls(None, '/', md.urlpatterns, url_ordered_dict)return url_ordered_dict

4 视图函数

from rbac.service.router import get_all_url_dict
def multi_permissions(request):"""批量操作权限:param request::return:"""# 获取项目中所有的urlall_url_dict = get_all_url_dict()for k, v in all_url_dict.items():print(k, v)return HttpResponse('ok it')

转载于:https://www.cnblogs.com/mosson/p/10551354.html

django2自动发现项目中的url相关推荐

  1. c 自动生成html文件,webpack4系列教程(三):自动生成项目中的HTML文件

    1. webpack中的CommonJS和ES Mudule 规范 1.1 CommonJs规范 CommonJs规范的出发点:JS没有模块系统.标准库较少.缺乏包管理工具:为了让JS可以在任何地方运 ...

  2. iOS项目中的URL Schemes与白名单

    在项目中对接支付.分享等第三方框架的时候,经常会用到URL Scheme和白名单等的配置,一直都是照着文档直接配置,没有理解它的作用. 最近写分享的时候分享静态页面,后台问我要一个iOS协议,用于跳转 ...

  3. 自动机器学习:团队如何在自动学习项目中一起工作?(附链接)

    来源 | 数据派THU 作者 | Francesca Lazzeri 翻译 | 王琦 责编 | Carol 出品 | AI科技大本营(ID:rgznai100) 去年11月,我写了一篇关于使用自动机器 ...

  4. 独家 | 自动机器学习:团队如何在自动学习项目中一起工作?(附链接)

    作者:Francesca Lazzeri 翻译:王琦 校对:冯羽 本文约3300字,建议阅读13分钟. 本文介绍了在零售商工作的数据科学家.项目经理和业务主管利用自动机器学习和Azure机器学习服务来 ...

  5. 自动机器学习:团队如何在自动学习项目中一起工作?

    作者:Francesca Lazzeri 翻译:王琦 校对:冯羽 本文约3300字,建议阅读13分钟. 本文介绍了在零售商工作的数据科学家.项目经理和业务主管利用自动机器学习和Azure机器学习服务来 ...

  6. html中对地址转码,浏览器自动将参数中的url转码问题

    遇到一个问题, 开始的url如下: http://localhost:6666/pages/wxpay.html? code_url=weixin://wxpay/biz 请求转发到谷歌浏览器打开后变 ...

  7. zabbix自动发现实现批量监控docker状态

    最近在搞zabbix监控docker以及docker内部应用状态信息,网上找的资料好少,只找到了一个大神的一篇文章,用的是python实现监控docker容器的基本状态,我在他给的脚本基础上进行修改, ...

  8. Myeclipse的使用方法-添加,修改,删除JRE,修改项目中的jre不显示问题

    通过菜单Window > Preferences,然后选择Java > Installed JREs,可以打开供在Eclipse 编写程序所使用的JRE 列表.复选框选中的JRE 是默认的 ...

  9. 如何在机器学习项目中使用统计方法的示例

    摘要: 在本文中,将通过十个实例介绍在机器学习项目中起关键作用的统计学方法. 统计学和机器学习是两个密切相关的领域.两者的界限有时非常模糊,例如有一些明显属于统计学领域的方法可以很好地处理机器学习项目 ...

最新文章

  1. 1062 Talent and Virtue
  2. ASP.NET刷新页面的六种方法
  3. 再谈Bellman-Ford
  4. python用户管理系统模块_Django的用户模块与权限系统的示例代码
  5. asp.net 性能优化细节
  6. PHP设计模式——职责链模式
  7. android nexus 6尺寸,谷歌Nexus 6详细配置曝光 原生Android大杀器
  8. IEEE极限编程练习:Sorting Partition
  9. SI4463低功耗测试-STC单片机一样可以超低功耗
  10. IDEA打包jar包的多种方式
  11. BitTorrent 简介
  12. 全国省市区区划代码以及邮政编码数据最新版--Mysql版(上)
  13. C语言日期计算器vs2022
  14. 武汉城建学院计算机专业柴曲,采访对话丨在世界一流的柴院学音乐,是怎样一种感受?...
  15. 最速降线问题公式推导
  16. Linux和Windows学习日记5
  17. 中国互联网公司应该从雅虎的衰落中学到什么?
  18. 观察者模式的一个例子
  19. 训练集、验证集、测试集以及交叉验证
  20. numeric_limits 解析

热门文章

  1. 五年级计算机下册教案人教版,新人教版五年级下册信息技术全册教案.pdf
  2. cipher java aes 模式_java – 为什么我的AES Cipher在init的DECRYPT_MODE上抛出一个InvalidKeyException...
  3. java读取xml路径问题_java 中读取xml 和绝对路径
  4. 学习笔记之sed用法
  5. mysql怎么连接数据连接池_Mysql数据库连接池
  6. 分布式文件系统FastDFS安装教程
  7. MYSQL索引创建与删除
  8. Linux CentOS完全卸载PHP
  9. Android开发笔记(一百二十二)循环器视图RecyclerView
  10. java map对象排序输出_java实现对象的排序(List和Map)