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

时间:2019-07-05 07:15:23

标签: django python-3.x django-views django-urls

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

现在,我想获取我所有项目的所有urls_pattern和相关的视图名称。

我如何得到这样的东西:

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

我已经看到了有关url模式问题的几个主题,但是没有一个与之相对应,可以满足我的要求。在大多数情况下,对于我的情况而言,答案是很老旧的和沉迷的。这就是为什么我重新提出我的问题:我想拥有url模式,并为每个url关联他的视图名称:我该如何在python 3.7上使用Django 2.2.3做到这一点?

2 个答案:

答案 0 :(得分:0)

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

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

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

–有关entry的所有内容,请参见here

答案 1 :(得分:0)

您可以使用django-extensions来实现:

function removeEmpty(obj) { Object.keys(obj).forEach(function(key) { if (obj[key] == null || (Array.isArray(obj[key]) && obj[key].length === 0)) { delete obj[key]; } else if (typeof obj[key] === 'object') { removeEmpty(obj[key]); } }); return obj; };

然后在pip install django-extensions中输入

settings.py

最后在您的命令行中:

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


这将完全满足您的需求。从软件包文档中:

  

./manage.py show_urls:为项目生成由制表符分隔的(url_pattern,view_function,name)元组列表。