在Django中,我如何内省应用程序URL?

时间:2014-02-12 16:14:48

标签: python django flask url-routing bottle

在瓶子或烧瓶中,我可以这样做:

for route in app.routes:
    description = route.callback.__doc__
    method = method

所以我可以循环遍历给定应用程序的所有url(路由)寄存器并查看其回调函数(用Django术语查看),接受的方法等等。

我想知道django是否可以实现这一点。所以我想得到给定应用程序的所有网址以及链接到这些网址的所有视图。这可以吗?

1 个答案:

答案 0 :(得分:2)

您需要从项目中导入urls模块。 urls.urlpatterns正是您要找的。试试这个功能:

import urls # or from app import urls
def print_urls(patterns, indent=0):
    for u in patterns:
        if u.callback:
            print '-'*indent, u.regex.pattern, u.callback
        else:
            print '='*(indent+1), u.regex.pattern
            print_urls(u.url_patterns, indent+3)

print_urls(urls.urlpatterns)