Django 2.2.3 如何获取所有 urls 模式和所有视图名称
Posted
技术标签:
【中文标题】Django 2.2.3 如何获取所有 urls 模式和所有视图名称【英文标题】:Django 2.2.3 How get all urls patterns and all views name 【发布时间】:2019-11-15 19:18:23 【问题描述】:我使用 Django == 2.2.3 编写应用程序
现在我想获取我所有项目的所有 urls_patterns 和关联的视图名称。
我怎样才能得到这样的东西:
urls_patterns_view_names_list = [
("view_name", "view_name: url_pattern"),
...,
...,
...,
]
我已经看到几个关于 url 模式问题的主题,但没有一个对应并做我想做的事。在大多数情况下,我的情况的答案非常陈旧且令人着迷。这就是我重新提出我的问题的原因:我希望有 urls 模式,并为每个 url 关联他的视图名称:如何在 python 3.7 上使用 Django 2.2.3 来做到这一点?
【问题讨论】:
Django : How can I see a list of urlpatterns?的可能重复 情况不一样!在回答之前阅读...而且您的主题非常古老,不符合我想做的事情..... @NathanIngram 如果有些东西是旧的,那不一定是错的。老年人有时是最聪明的人。 请教如何在views.py中使用django-extension 【参考方案1】:您可以通过django-extensions
实现此目的:
pip install django-extensions
然后在settings.py
:
INSTALLED_APPS = [
...
'django_extensions',
...
]
最后在你的命令行中:
./manage.py show_urls
这将得到您想要的结果。来自包文档:
show_urls
:为项目生成一个以制表符分隔的 (url_pattern, view_function, name) 元组列表。
【讨论】:
@NathanIngram 你可以通过这个方法得到你想要的结果。是否使用它取决于您。 “我想要 urls 模式,并为每个 url 关联他的视图名称”【参考方案2】:这不是直接微不足道的,但我编写了一个模块 https://github.com/valohai/django-urr,它具有用于工作和遍历 Django URL 解析器的实用程序。
如果你最终使用它,你可以使用
for entry in django_urr.extract_urls():
print(vars(entry))
– 查看here 了解entry
s 的所有内容。
【讨论】:
但是如何获取视图名称? 那就是entry.name
。
@NathanIngram 如果您对这个答案感到满意,请不要忘记投票并将其标记为正确。
谢谢你向我推荐了我可以在哪里找到我的答案......你的应用程序很棒。但这并不是我真正要问的...谢谢我的兄弟...以上是关于Django 2.2.3 如何获取所有 urls 模式和所有视图名称的主要内容,如果未能解决你的问题,请参考以下文章