上面提到的事情给了我几乎相同的结果,想知道它们的主要区别是什么。
答案 0 :(得分:53)
response = HttpResponse("Here's the text of the Web page.")
:
将使用HTTP代码200(OK)创建一个新的HttpResponse
对象,并将内容传递给构造函数。一般来说,你应该只将它用于非常小的响应(比如一个AJAX表单的返回值,如果它真的很简单 - 只是一个数字左右)。
HttpResponseRedirect("http://example.com/")
:
将使用HTTP代码302(暂时找到/移动)创建一个新的HttpResponse
对象。 这应仅用于重定向到其他页面(例如,成功发布POST后)
来自文档:
class HttpResponseRedirect
构造函数采用单个参数 - 重定向到的路径。 这可以是完全限定的URL (例如'http://www.yahoo.com/search/') 或没有域名的绝对URL (例如'/ search /')。请注意这一点 返回HTTP状态代码302。
足够说......
render_to_response(template[, dictionary][, context_instance][,mimetype])
使用给定的上下文字典呈现给定模板并返回 一个HttpResponse对象 渲染文本。
是一个使用给定变量字典呈现模板的调用,以便为您创建响应。 这是您应该在大多数时间使用的,因为您希望将表示逻辑保留在模板中而不是代码中。