首页 > 解决方案 > 重定向vs反向django

问题描述

get_absolute_url在模型中的方法中使用反向,但我希望我对反向和重定向之间的区别有所了解,我试图在谷歌上搜索它,但几乎没有什么我不知道我应该写什么说服堆栈溢出我没有任何其他描述

标签: djangodjango-modelsdjango-templatesdjango-views

解决方案


反向和重定向具有不同的含义。这是一个简单的解释:

reverse在 Django 中用于查找给定资源的 URL。假设您有一个博客网站,并且您想从主页提供指向您的博客文章的链接。您当然可以只硬编码/posts/123/并在 URL 中更改博客文章的 ID,但这使得将来很难更改文章的 URL。这就是 Django 带有反向功能的原因。您需要做的就是传递 URL 路径的名称(在您的 中定义urlpatterns),Django 将为您找到正确的 URL。之所以称为反向,是因为它是确定应该为给定 URL 调用哪个视图的反向过程(该过程称为解析)。

重定向并不特定于 Django 或任何其他 Web 框架。重定向意味着对于给定的 URL(或操作),应指示用户访问特定的 URL。这可以通过发送一个特殊的重定向请求来完成,浏览器将从那里为用户处理它,因此在该过程中不需要用户操作。您可以在重定向过程中使用反向来确定用户应该被重定向到的 URL。


推荐阅读