django 重定向

重定向应用程序

Django带有一个可选的重定向应用程序。它允许您将简单的重定向存储在数据库中

并处理重定向。默认使用HTTP响应状态

301 Moved Permanently


安装

要安装重定向应用程序,请按照下列步骤操作:


1.确保django.contrib.sites框架 已安装


2.添加'django.contrib.redirects'到您的INSTALLED_APPS设置。


3.添加'django.contrib.redirects.middleware.RedirectFallbackMiddleware' 到您的MIDDLEWARE设置。


4.运行该命令manage.py migrate


它如何工作

manage.py migratedjango_redirect在数据库中创建一个表。这是一个简单的查找

site_idold_pathnew_path领域。


RedirectFallbackMiddleware 完成所有的工作。每当Django应用程序出现404错误时,该中


间件都会检查重定向数据库中的请求URL作为最后的手段。具体来说,它会检查具有


old_pathSITE_ID设置相对应的站点ID 的给定重定向


如果它找到匹配项并且new_path不为空,则它将重定向到 new_path使用301(“永久移


动”)重定向。你也可以继承 RedirectFallbackMiddleware ,并设


置 response_redirect_class 来django.http.HttpResponseRedirect使用 重定向代替。302 Moved Temporarily


如果它找到一个匹配项并且new_path是空的,它会发送410(“Gone”)HTTP头和空(无


内容)响应。


如果找不到匹配项,请继续照常处理。


中间件只能在404s中激活 - 不适用于500s或任何其他状态码的响应。


请注意MIDDLEWARE事项的顺序一般来说,你可以放在 RedirectFallbackMiddleware列表的最后,


因为这是最后的手段。


有关中间件的更多信息,请阅读中间件文档


添加,编辑和删除重定向

通过管理界面

如果您启用了Django自动管理界面,则应该在管理网站主页上看到“重定向”部分。


在更改系统中的任何其他对象时修改重定向。

通过Python API¶

models.Redirect

重定向由一个标准的Django模板表示,该模板django / contrib / redirects /


 models.py中定义您可以通过Django数据库API访问重定向对象

中间件

middleware.RedirectFallbackMiddleware

您可以HttpResponse通过创建RedirectFallbackMiddleware重载response_gone_class属性的子类

response_gone_class


HttpResponse在没有使用Redirect时发现要求路径或者它有一个空值new_path

默认值是HttpResponseGone


response_redirect_class

HttpResponse处理重定向的类

默认值是HttpResponsePermanentRedirect


修改中间件使用


的类response_redirect_class










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值