Django: Каково различие черно-белый HttpResponse по сравнению с HttpResponseRedirect по сравнению с render_to_response

Вышеупомянутые вещи дают мне, почти те же результаты задавались вопросом, каково основное различие в них.

15
задан Fahim Akhter 17 December 2009 в 12:43
поделиться

1 ответ

  1. response = HttpResponse («Вот текст веб-страницы.») :
    создаст новый объект HttpResponse с кодом HTTP 200 (OK), а его содержимое будет передано конструктору. В общем, вы должны использовать это только для действительно небольших ответов (например, возвращаемого значения формы AJAX, если это действительно просто - просто число или около того).

  2. HttpResponseRedirect ("http://example.com/") :
    создаст новый объект HttpResponse с кодом HTTP 302 (временно найдено / перемещено). Это должно использоваться только для перенаправления на другую страницу (например, после успешной формы POST)

Из документации:

класс HttpResponseRedirect Конструктор принимает единственный аргумент - путь для перенаправления. Это может быть полный URL (например, " http://www.yahoo.com/search/ ") или абсолютный URL без домена (например, "/ search /"). Обратите внимание, что это возвращает код состояния HTTP 302.

достаточно сказано ...

render_to_response (template [, dictionary] [, context_instance] [, mimetype])
Отображает данный шаблон с заданным контекстным словарем и возвращает объект HttpResponse с этим отображаемый текст.

- это вызов для визуализации шаблона с заданным словарем переменных для создания ответа за вас. Это то, что вы должны использовать большую часть времени , потому что вы хотите сохранить логику представления в шаблонах, а не в коде.

53
ответ дан 1 December 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: