有没有办法获得complete Django的url配置?

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


Answer:感谢阿拉斯代尔,下面是一个示例脚本:

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)

推荐答案

Django是Python,所以自省是您的朋友.

在shell中,输入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个对象的进一步列表.

Django相关问答推荐

Django www.example.com从常量列表中删除值

Django查询一个查询集的输入结果,以查找没有出现在另一个模型中的对象

如何在Django REST框架中实现ForeignKey搜索

Django:创建一个动态侧边栏模板并在其他模板中使用它

DecimalField 验证错误,返回不正确的值 Django

来自 Django 应用程序的日志(log)消息未上传到 AWS CloudWatch

Django ModelForm提交按钮不起作用

使用 args 和选项编写自定义管理命令 - 所需字段说明

Django InlineModelAdmin:部分显示内联模型并链接到完整模型

ModelForm 的 Django TextField max_length 验证

Django JSONField 过滤

测试 Django ModelForm 是否有实例

Apache + mod_wsgi 与 nginx + gunicorn

Django BigInteger自动增量字段作为主键?

Django -- User.DoesNotExist 不存在?

从基于类的通用视图中获取 request.session

django post_save 更新信号

AssertionError: `HyperlinkedIdentityField` 需要序列化程序上下文中的请求

Django:AppRegistryNotReady()

如何获取 pytz 时区的通用名称