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