django快速获取项目所有的URL
2017-08-12 00:00
411 查看
django快速获取项目所有的URL
django1.10快速获取项目所有的URL列表,可以用于权限控制函数如下:
import re def get_url(urllist , parent='' , depth=0 , url_list=[] , url_dict={}): for entry in urllist: url = entry.regex.pattern if re.search('\(' , url) : continue #过滤正则表达式的URL地址 url = url.replace(r'^' , '') url = url.replace(r'$' , '') url = url.replace(r'/' + '$' , '') if depth == 0: if url in ['admin' , 'admin/' , 'auth' , 'auth/']: continue #过滤admin和auth等app if re.search('\/$' , url) : url_list.append('/' + url) else : url_list.append('/' + parent + url) try : url_dict['/'].append('/' + url) except : url_dict['/'] = [] url_dict['/'].append('/' + url) else : url_list.append('/' + parent + url) try : url_dict['/' + parent].append('/' + parent + url) except : url_dict['/' + parent] = [] url_dict['/' + parent].append('/' + parent + url) if hasattr(entry, 'url_patterns'): get_url(entry.url_patterns , url , depth + 1) # url_dict = {'/basicdata/': ['/basicdata/provider/add', '/basicdata/provider/export', '/basicdata/provider/list', '/basicdata/provider/detail'], '/': ['/basicdata/', '/login.html']} # url_list = ['/basicdata/', '/basicdata/department/export', '/basicdata/department/list', '/basicdata/department/detail', '/basicdata/department/edit', '/login.html', '/index.html'] return url_dict
注意:
调用get_url函数获得清单,必须使用函数或者class来封装
def recreate(request): from library.django.get_url import get_url from lykops import urls url_dict = get_url(urls.urlpatterns) print(url_dict) return HttpResponseRedirect(reverse('list'))
然后修改urls.py
urlpatterns = [ ...... url(r'^/recreate/', views.recreate, name="recreate"), ...... ]
如果其他函数调用的话,报错AttributeError: module ‘lykops.urls’ has no attribute ‘urlpatterns’
File "/opt/lykops/sysadmin/urls.py", line 5, in <module> url(r'^app/add', views.App().add, name="add_app"), File "/opt/lykops/sysadmin/views.py", line 76, in __init__ self.recreate() File "/opt/lykops/sysadmin/views.py", line 79, in recreate url_dict = get_allurl(urls.urlpatterns) AttributeError: module 'lykops.urls' has no attribute 'urlpatterns'
相关文章推荐
- [置顶] django快速获取项目所有的URL
- django快速获取项目所有的URL
- django快速获取项目所有的URL
- django快速获取项目所有的URL
- django获取项目所有的URL
- 十.scrapy项目 爬取主页http://cuiqingcai.com/获取所有url与title
- 项目启动时获取项目中的所有url
- 获取Django项目的全部url
- SpringMVC项目中获取所有URL到Controller Method的映射
- SpringMVC项目中获取所有URL到Controller Method的映射
- 获取SSM项目中所有的URL
- 获取Django项目的全部url方法详解
- 【MVC】获取项目中所有的控制器-试图
- 获取java web项目里面所有的properties文件并组装在一起,使用方便,配置简单
- C# 根据Url获取页面所有内容
- 快速获取手机本地所有图片或视频
- Eclipse插件开发 获取Workspace下所有的项目
- django获取url参数总结
- PHP代码:获取指定URL页面中的所有链接
- 获取解决方案文件sln中所有的项目文件路径。