【问题标题】:How to make the output "pretty" using Django Rest Framework?如何使用 Django Rest Framework 使输出“漂亮”?
【发布时间】:2019-02-08 05:18:50
【问题描述】:

有没有办法格式化来自 Django Rest Framework 的输出?我正在寻找的是相当于 PHP JSON_PRETTY_PRINT 的 Django/DRF

目前,输出如下所示:

{"id":1,"username":"bartalamej","city":"Ostrava","photo":"uploads/avatars/a84232eff3aa407db95ff792aec77414.jpg"}

但我希望它看起来像这样:

{
  "id":1,
  "username":"bartalamej",
  "city":"Ostrava",
  "photo":"uploads/avatars/a84232eff3aa407db95ff792aec77414.jpg"
}

有人知道如何实现吗?

【问题讨论】:

  • 这样做的目的是什么?你想在你的代码中打印它吗?
  • 我想在浏览器中打开 URL 时看到格式化的输出
  • 您可以在浏览器中使用任何 json-formatter 插件。
  • 我不想为浏览器使用插件 - 这将是一个公共 API,所以我希望服务器以这种方式呈现它

标签: django rest api django-rest-framework


【解决方案1】:

您应该覆盖视图的get_renderer_context 并设置缩进:

def get_renderer_context(self):
    context = super().get_renderer_context()
    context['indent'] = 4
    return context

这将为json.dumps 调用添加一个缩进。

或者,您也可以将其留给您的客户,并按照in the documentation 的说明在Accept 标头中添加缩进

【讨论】:

  • 我应该把它放在哪里才能在全球范围内实现?
  • 您可以使用覆盖该方法的基类并从中派生您的视图。
【解决方案2】:

BrowseableAPIRenderer 很好地格式化 JSON 以供浏览。更多信息可以在here找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 2014-08-16
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    相关资源
    最近更新 更多