压缩并下载 Django Rest Framework 生成的 json 文件

Posted

技术标签:

【中文标题】压缩并下载 Django Rest Framework 生成的 json 文件【英文标题】:zip and download Django Rest Framework generated json file 【发布时间】:2014-08-08 16:26:45 【问题描述】:

假设我的 django rest 框架应用正在为这个 url 返回这个 json(其中 4 是模型的 pk):http:mydomain.com/model_number/4/?format=json

[
    
        "id": 96, 
        "title": "title 1",
        "picture": "static/uploads/pic1.jpg"
    ,
    
        "id": 97, 
        "title": "title 2",
        "picture": "static/uploads/pic2.jpg"
    ,
    
        "id": 98, 
        "title": "title 3",
        "picture": "static/uploads/pic3.jpg"
    
]

我想创建和下载一个包含上述内容的 json 文件(由 django rest 框架生成)的 zip,以及一个包含 pic1pic2pic3 的文件夹。

我可以下载包含这些图片的文件夹的 zip,但我不知道如何包含 json 文件。

不知道是不是和parsers有关:

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

只需使用模型实例作为参数构建序列化程序的实例。序列化器对象具有属性data

class YourModel(models.Model):
    ...

class YourModelSerializer(serializers.ModelSerializer):
    ...

your_json = YourModelSerializer(YourModel.objects.get(pk=5)).data

你也可以使用带有标志many=True的查询集:

your_json = YourModelSerializer(YourModel.objects.all(), many=True).data

【讨论】:

谢谢您的回答。这不是我想要的,但它真的很有帮助

以上是关于压缩并下载 Django Rest Framework 生成的 json 文件的主要内容,如果未能解决你的问题,请参考以下文章

DRF:如何将 django-rest-framework-jwt 集成到 Djoser

从 Django django-rest-framework 视图有条件地返回 JSON 或 HTML 响应

无法使用 Django Rest 框架发送压缩的 gzip 数据

在 Django 中为来自客户端的请求和来自服务器的响应(REST API)压缩 JSON 有效负载。

Django:压缩选定对象的pdf

在Rest API中,需要构建ZIP并下载到客户端系统