gpt4 book ai didi

Django-rest-framework json 转储

转载 作者:行者123 更新时间:2023-12-04 05:18:19 25 4
gpt4 key购买 nike

我已经使用 django-rest-framework 制作了一个简单的 JSON API,我希望能够将 5 个集合作为一个 zip 文件下载,其中包含集合作为 JSON 文件。 (我的应用程序需要此离线数据转储)。

我正在考虑编写一个 View ,例如,服务于 /download/捆绑了我所有 MyModelList.as_view() 的输出s 在一个 zip 和服务它。

这样做的最佳方法是什么?我可以使用 urllib/Requests 直接查询我的 API,但调用整个 http 堆栈似乎还有很长的路要走……

非常感谢!

最佳答案

您可以使用 MyModelList.as_view()(request, format="json").rendered_content你提到。根据您的设置,您还可以直接调用序列化程序,而不是一直遍历模型。当然,这取决于您是否在 View 中执行任何特殊操作,或者您是否仅传递序列化模型数据。

要压缩这些文件,请使用 Python 的 zipfile module .见 https://stackoverflow.com/a/9644831/27401https://stackoverflow.com/a/908293/27401一些额外的提示。总结:

  • 使用 StringIO创建一个类似文件的对象(而不是临时文件)。
  • 使用 zipfile 的 .writestr('filename-in-zip.json', your_json_string)在那个 StringIO 上添加内容。
  • 当将 zipfile 作为 django 响应返回时,不要忘记设置 Content-Disposition标题如 https://stackoverflow.com/a/909088/27401 所示
  • 关于Django-rest-framework json 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13969623/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com