dajngo 搜集所有url路由

时间:2021-01-13 11:36:17   收藏:0   阅读:0

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

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

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

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!