Django重定向

Django重定向

在前后端分离的情况下,我们很少使用重定向。

为什么要使用重定向?
我们为什么要将用户的访问重定向到不同的 URL 地址?我们看看 Django 项目是怎么回答的:

当你未登录并请求需要身份验证的URL(如Django管理员)时,Django会将你重定向到登录页面
成功登录后,Django会将你重定向到最初请求的URL
当你使用Django管理员更改密码时,系统会将你重定向到指示更改成功的页面
当你在Django管理员中创建对象时,Django会将你重定向到对象列表。

作者:爱吃鱼de大猫
链接:https://www.jianshu.com/p/5e322fb5b61c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

上述的情形,在前后端分离情形下,可以这样做。前端请求一个需要身份认证的接口给后端,后端先判断这个请求携带的session或者token是否是登录状态。如果是,返回成功响应;如果该请求的发起者未登录,则后端返回未登录,前端根据返回值,跳转到登录页面即可。当然,也可以是后端直接重定向到前端页面。不过这样做,就需要知道前端的路由。前端和后端之间耦合度就变得更高了。

使用redirect进行重定向

下面是一个非常简单的例子:

def test(request):
    from django.shortcuts import redirect
    return redirect('https://www.baidu.com')

对这个例子进行一个简单的说明。先看下图:
在这里插入图片描述
可以看到,请求的url是http://127.0.0.1:8008/test,返回的状态码是302,代表重定向。然后在返回的响应头中包含一个名为Location的值。

浏览器收到302的响应之后,会自动对响应头中包含的Location进行请求,所以我们看到请求http://127.0.0.1:8008/test之后,实际上页面跳转到了百度一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值