【问题标题】:working with serializers in the Django-Rest Framework在 Django-Rest 框架中使用序列化程序
【发布时间】:2016-07-19 16:14:48
【问题描述】:

我不知道这是否适合提出这个问题。我最近遇到了 Django rest 框架。我在我的一个项目中使用 django。我想使用 DRF 作为我项目的 api 客户端。我遇到了序列化模型实例序列化器这个术语。我经历了DRF Tutorial,但我仍然不知道它是如何工作的。我的问题是:

1.为什么要使用序列化器?它们的用途是什么?

2.使用序列化器还能做什么?

3.序列化器是如何工作的?

互联网上可能有很多关于这个礼物的参考资料,但我想要一个简单易懂的答案。谢谢!!

【问题讨论】:

    标签: python django serialization django-rest-framework


    【解决方案1】:

    1.为什么要使用序列化器?它们的用途是什么?

    以非常笼统的方式:

    假设您想邀请您的朋友喝咖啡。为了通知你的朋友,你发短信说“什么:咖啡,时间:12 小时,地点:街角的高档咖啡吧”。这篇文章是你的想法的序列化。

    DRF 为您的 Django 模型执行此操作。

    假设您有一个 JS 客户端,它不(想要)了解您的 DB 或 Django 模型。您将 Django 对象序列化为 JSON,以便以与 JS 兼容的方式使用该数据:

    data = {
        "address": {
            "street": "Fancy Street 1b"
        }
    };
    

    DRF 提供了一种将 Django 模型实例转换为 JSON(或其他格式)的简单方法。这就是序列化程序所做的。他们还提供反序列化您的 JS 前端发送回服务器的内容。

    2.使用序列化器还能做什么?

    您可以添加更多在序列化时计算的字段。例如,除了为相关对象添加简单的 ID,您还可以序列化相关对象并将它们嵌套添加到 JSON(或 XML 或任何格式)中。

    您还可以在前端添加某些视图只需要的字段,例如与分页相关的内容等。

    3.序列化器是如何工作的?

    对于 python,从 python 到 JSON 的最简单的序列化程序是接受 python 字典并简单地从 python 键创建字符串键,将 Django 布尔转换为 truefalse 字符串,将 python None 转换为 @ 987654325@等

    对于更复杂的翻译,您可能需要添加自己的逻辑。例如。比如解析 Django 模型上的相关对象引用。或将日期对象格式化为 ISO 标准字符串(带时区)、本地化(十进制)数字、本地化文本等。

    【讨论】:

    • 非常感谢...这正是我想要的。简短、简单、直接.. 非常感谢 :) @Risadinha
    猜你喜欢
    • 2022-01-08
    • 2018-07-11
    • 1970-01-01
    • 2017-10-03
    • 2019-05-20
    • 2016-03-31
    • 2017-02-17
    • 1970-01-01
    • 2020-12-22
    相关资源
    最近更新 更多