【问题标题】:What the difference between using Django redirect and HttpResponseRedirect?使用 Django 重定向和 HttpResponseRedirect 有什么区别?
【发布时间】:2012-10-29 12:59:28
【问题描述】:

一般用哪个比较好?

写作有什么好处:

return redirect(my_url)

结束:

return HttpResponseRedirect(my_url)

还是直接别名?有什么区别吗?哪个更pythonic/django-nic?

【问题讨论】:

    标签: python django redirect


    【解决方案1】:

    两者是有区别的:

    对于HttpResponseRedirect,第一个参数只能是url

    redirect最终会返回一个HttpResponseRedirect,可以接受modelviewurl作为“to”参数。因此,它可以“重定向”到的内容更加灵活。

    我也喜欢redirect 更短。所以我会使用redirect 而不是HttpResponseRedirect

    虽然两者都可以使用。

    【讨论】:

      【解决方案2】:

      来自文档 -

      redirect(to[, permanent=False], *args, **kwargs) 返回一个 HttpResponseRedirect 指向传递参数的相应 URL。

      从定义上看是一样的。这就是捷径的用途。两者都是一回事。

      快捷方式通常写在实际 API 的上一层。所以redirect 用参数permanent=False 封装了HttpResponseRedirectHttpResponsePermanentRedirect

      使用HttpResponseRedirect 而不是redirect 并没有太大的缺点。希望这可以清除它。

      【讨论】:

        猜你喜欢
        • 2016-09-27
        • 2013-10-05
        • 1970-01-01
        • 2019-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-27
        相关资源
        最近更新 更多