如何遍历得到一个django工程的所有url

如何遍历得到一个django工程的所有url


qq_遁去的一_1
浏览 721回答 1
1回答

湖上湖

def urlAll(pattern, urlconf_name):exec('import %s' %urlconf_name)urlmod = eval(urlconf_name)urlpatterns = urlmod.urlpatternsurl_all = []for urlpattern in urlpatterns:newpattern = pattern+urlpattern.regex.pattern[1:]if hasattr(urlpattern, 'urlconf_name'):# 存在urls子模块,递归该方法url_all.extend(urlAll(newpattern, urlpattern.urlconf_name))else:url_all.append(newpattern)return url_all使用方法:比如你的ROOT_URLCONF=‘test.urls'那么这样调用:urlAll('^', 'test.urls')返回值就是你整个django工程的url列表,包括apps里面的。前提是urlpattern必须写得规范。 容错性没怎么考虑,多交流
打开App,查看更多内容
随时随地看视频慕课网APP