在Django中,如何反思应用程序的url?

oxf4rvwz  于 2023-02-20  发布在  Go
关注(0)|答案(1)|浏览(93)

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

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

所以我可以循环遍历给定应用程序的所有url(routes)寄存器,并查看它的回调函数(Django术语中的视图)、接受的方法等等。
我想知道django是否也能做到这一点。所以我想得到给定应用的所有网址以及链接到这些网址的所有视图。可以做到吗?

vshtjzan

vshtjzan1#

您需要从项目导入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)

相关问题