小编典典

确定完整的Django URL配置

python

有没有一种方法来获取 完整的 Django URL配置?

例如,Django的调试404页面未显示包含的url配置,因此这不是完整的配置。


:感谢Alasdair,这是一个示例脚本:

import urls

def show_urls(urllist, depth=0):
    for entry in urllist:
        print("  " * depth, entry.regex.pattern)
        if hasattr(entry, 'url_patterns'):
            show_urls(entry.url_patterns, depth + 1)

show_urls(urls.urlpatterns)

阅读 178

收藏
2020-12-20

共1个答案

小编典典

Django是Python,因此内省是您的朋友。

在外壳中,导入urls。通过循环浏览urls.urlpatterns并尽可能深入地查看所包括的url配置的多层,您可以构建完整的url配置。

import urls
urls.urlpatterns

该列表urls.urlpatterns包含RegexURLPatternRegexURLResolver对象。

对于一个RegexURLPattern对象,p您可以使用

p.regex.pattern

对于表示包含的url配置的RegexURLResolver对象q,您可以使用来显示正则表达式的第一部分

q.regex.pattern

然后使用

q.url_patterns

这将返回RegexURLResolverRegexURLPattern对象的进一步列表。

2020-12-20