为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_遁去的一_1 2018-11-26 00:00:25
如何遍历得到一个django工程的所有url
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

def urlAll(pattern, urlconf_name):

exec('import %s' %urlconf_name)
urlmod = eval(urlconf_name)
urlpatterns = urlmod.urlpatterns
url_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必须写得规范。 容错性没怎么考虑,多交流



查看完整回答
反对 回复 2018-12-21
  • 1 回答
  • 0 关注
  • 744 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信