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

Nat*_*ram 5 django django-urls django-views python-3.x

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

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

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

    urls_patterns_view_names_list = [
        ("view_name", "view_name: url_pattern"),
        ...,
        ...,
        ...,
]
Run Code Online (Sandbox Code Playgroud)

我已经看到了几个关于 url 模式问题的主题,但没有一个对应并做我想做的事情。在大多数情况下,答案对于我的情况来说都是非常古老且令人着迷的。这就是为什么我重新表述我的问题:我想要 url 模式,并且每个 url 都与其视图的名称相关联:如何在 python 3.7 上使用 Django 2.2.3 来做到这一点?

wen*_*isa 8

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

pip install django-extensions

然后在settings.py:

INSTALLED_APPS = [
    ...
    'django_extensions',
    ...
]
Run Code Online (Sandbox Code Playgroud)

最后在你的命令行中:

./manage.py show_urls


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

show_urls:为项目生成一个制表符分隔的(url_pattern、view_function、name)元组列表。


AKX*_*AKX 0

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

\n\n

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

\n\n
for entry in django_urr.extract_urls():\n    print(vars(entry))\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\x93 s的所有内容请参见此处entry。

\n