dajngo 搜集所有url路由

1,在views 中定义一个接口(随便定义)

2,接口实例如下:(index是接口返回HTTPResponse,get_all_url是触发搜集url的函数)


from django.urls.resolvers import RegexURLPattern
from django.urls.resolvers import RegexURLResolver

def
index(request): from demo.urls import urlpatterns   # 导入总路由的urlpatterns print(get_all_url(urlpatterns, prev='/')) return HttpResponse('hello django') def get_all_url(urlparrentens,prev,is_first=False,result=[]): for item in urlparrentens: v = item._regex.strip('^$')#去掉url中的^和$ if isinstance(item,RegexURLPattern): result.append(prev + v) # 处理总路由为:url(r'^', include('requresp.urls') 形式的 elif isinstance(item, RegexURLResolver): dic = item.reverse_dict.values() for i in dic: print(i[1]) result.append(item._regex + i[1]) print(result) res = [] for item in result: res.append(item.strip('^$')) return res

3,最后返回的res列表就是搜集的所有url

原文地址:https://www.cnblogs.com/wjun0/p/14267962.html