Django 2.2.3 如何获取所有 urls 模式和所有视图名称

Django 2.2.3 How get all urls patterns and all views name

我用 Django 编写应用程序 == 2.2.3

现在我想获取所有 urls_patterns 我的所有项目和关联的视图名称。

我怎样才能得到这样的东西:

    urls_patterns_view_names_list = [
        ("view_name", "view_name: url_pattern"),
        ...,
        ...,
        ...,
]

我已经看到几个关于 url 模式问题的主题,但 none 对应并做我想做的。在大多数情况下,对于我的案例来说,答案是非常陈旧和强迫性的。这就是为什么我重新表述我的问题:我想要 urls 模式,并且每个 url 关联他的视图名称:How can I do that with Django 2.2.3 on python 3.7?

它并不简单,但我编写了一个模块 https://github.com/valohai/django-urr,它具有用于工作和遍历 Django URL 解析器的实用程序。

如果你最终使用它,你可以直接使用

for entry in django_urr.extract_urls():
    print(vars(entry))

– 参见 here 了解 entry 的所有内容。

您可以通过 django-extensions 实现此目的:

pip install django-extensions

然后在settings.py:

INSTALLED_APPS = [
    ...
    'django_extensions',
    ...
]

最后在您的命令行中:

./manage.py show_urls


这将得到您想要的结果。来自包文档:

show_urls: Produce a tab-separated list of (url_pattern, view_function, name) tuples for a project.