Сериализатор против рендерера в Django Rest Framework - PullRequest
0 голосов
/ 07 января 2019

Мне трудно заметить разницу между сериализатором и рендерером в django rest framework.

Я думал, что сериализатор предназначен для преобразования объекта Python в JSON (или другие форматы данных). Говорят, что рендереры, такие как JSONRenders, делают то же самое, например. создание (рендеринг) объекта JSON!

Не могли бы вы сказать мне разницу между этими двумя?

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Сериализатор ничего не знает ни о каких форматах вывода. Он просто берет ваши модели и затем преобразует их в структуры данных Python. Затем задача визуализатора выводить эти данные в соответствующем формате.

(Сериализатор также выполняет преобразование проведенных данных обратно в экземпляры модели, проверяя их в процессе.)

0 голосов
/ 07 января 2019

Сериализаторы просто возвращают объект в формате JSON.

Где Рендерер имеет несколько целей

  • JSONRenderer: визуализирует данные запроса в JSON, используя utf-8 кодирование.
  • TemplateHTMLRenderer: отображает данные в HTML, используя Django стандартный шаблон рендеринга.
  • StaticHTMLRenderer: простой рендер это просто возвращает предварительно отрендеренный HTML.
  • BrowsableAPIRenderer: визуализация данные в HTML для браузера API.
  • AdminRenderer: отображает данные в HTML для отображения, как у администратора.
  • HTMLFormRenderer: отображает данные возвращается сериализатором в форму HTML.
  • MultiPartRenderer: это рендерер используется для рендеринга данных многочастной формы HTML.

Вы также можете сделать пользовательский рендер.

Подробнее см. Ссылку .

...