Django: в чем разница B / w HttpResponse vs HttpResponseRedirect vs render для ответа

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

1 ответов


  1. response = HttpResponse("Here's the text of the Web page."):
    создадим новый HttpResponse объект с кодом HTTP 200 (OK) и содержимое, переданное конструктору. В общем, вы должны использовать это только для очень маленьких ответов (например, возвращаемое значение формы AJAX, если оно действительно простое - просто число или около того).

  2. 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 с этим отрисованный текст.

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