【发布时间】:2020-11-06 19:56:18
【问题描述】:
我开始使用 Django Rest Framework,但我对 DRF 的工作方式感到困惑。 URL -> 分配的视图集 -> 数据库 -> DJANGO ORM -> 模型 -> 视图 -> 输出 但是序列化程序在哪里执行?我知道它将 DATABASE 对象转换为 JSON,但我不知道何时调用序列化程序。
【问题讨论】:
标签: django django-rest-framework
我开始使用 Django Rest Framework,但我对 DRF 的工作方式感到困惑。 URL -> 分配的视图集 -> 数据库 -> DJANGO ORM -> 模型 -> 视图 -> 输出 但是序列化程序在哪里执行?我知道它将 DATABASE 对象转换为 JSON,但我不知道何时调用序列化程序。
【问题讨论】:
标签: django django-rest-framework
只是为了仔细检查你是否知道这一点:Serializer 类序列化了一个对象实例。假设我有这个对象:
from datetime import datetime
class Comment(object):
def __init__(self, email, content, created=None):
self.email = email
self.content = content
self.created = created or datetime.now()
# Remember to instantiate
comment = Comment(email='leila@example.com', content='foo bar')
然后serializer 会将其转换为
{'email': 'leila@example.com', 'content': 'foo bar', 'created': '2016-01-27T15:17:10.375877'}
那么什么时候会调用它? 无论何时何地+任何时候你创建了一个属于这个类的对象(例如视图、表单、后端句柄等),序列化器都会被执行,尽管你有像serializer = CommentSerializer(comment)这样单独调用序列化器。
【讨论】: