Django: в чем разница B / w HttpResponse vs HttpResponseRedirect vs render для ответа
вышеупомянутые вещи дают мне почти те же результаты, было интересно, в чем основное различие в них.
1 ответов
response = HttpResponse("Here's the text of the Web page.")
:
создадим новыйHttpResponse
объект с кодом HTTP 200 (OK) и содержимое, переданное конструктору. В общем, вы должны использовать это только для очень маленьких ответов (например, возвращаемое значение формы AJAX, если оно действительно простое - просто число или около того).HttpResponseRedirect("http://example.com/")
:
создадим новыйHttpResponse
объект с кодом HTTP 302 (найден / перемещен временно). это должно использоваться только для перенаправления на другую страницу (например, после успешная форма POST)
документы:
class HttpResponseRedirect
Конструктор принимает один аргумент-путь для перенаправления. Это может быть полный URL (например,'http://www.yahoo.com/search/') или абсолютный URL без домена (например, ' / search/'). Обратите внимание, что это возвращает код состояния HTTP 302.
достаточно сказал...
render_to_response(template[, dictionary][, context_instance][,mimetype])
Отображает заданный шаблон с заданным контекстным словарем и возвращает объект HttpResponse с этим отрисованный текст.
- это вызов для отображения шаблона с заданным словарем переменных для создания ответа для вас. это то, что вы должны использовать большую часть времени, потому что вы хотите сохранить логику презентации в шаблонах, а не в коде.