Django框架之登录后⾃定义跳转页⾯的实现⽅法
Django auth 登陆后页⾯跳转⾄/account/profile,修改跳转⾄其他页⾯
这⼏天在学习django,django功能很强⼤,⾃带的auth,基本可以满⾜⽤户注册登陆登出,简单的⽤户注册登陆系统使⽤django auth⾜矣。当然也不是拿来就能⽤的,需要⾃⼰写登陆页⾯的模板,也很简单。⾃⼰尝试了⼀下,发现⼀个问题,当验证登陆成功后,页⾯会⾃动跳转到/account/profile,我并不想把页⾯跳转到这个页⾯,如何修改呢?
查了⼀堆⽹页,还是官⽹靠谱,很简单,就在project的setting⾥加⼀句话就Okay!
LOGIN_REDIRECT_URL = ‘/index'
我这⾥是指定登陆成功后跳转到index页⾯,朋友们可以根据⾃⼰需要进⾏修改。就这样就okay啦!欢呼吧,然后接着解决别的问题!
======================================================================================================================================================== Django 跳转和重定向的⽅法:
跳转和重定向很常见的场景就是登录和注销后返回到当前页⾯。给你个登录和注销的例⼦。
⽐如⽤户正在浏览⼀篇⽂章,发现下载该⽂章的附件需要登录才能进⾏,这时候点击登陆链接转⼊登陆页⾯,输⼊⽤户名密码登陆成功以后,会⾃动转回原来的那篇⽂章所在的页⾯。(⽬前很多
⽹站采⽤ajax⽅法弹出对话框登陆,效果更好⼀些)
怎么做呢?下⾯说的是django的实现,但是⼤多数的web framework都可以这么做。
django登录注册功能注销操作:
因为不需要单独的注销页⾯,相对简单,利⽤HTTP_REFERER,Django的注销页⾯这样写就⾏:
def logout_user(request):
logout(request)
return HttpResponseRedirect(('HTTP_REFERER', '/'))
登录操作:
登陆操作相对复杂,因为⼀般都有单独的登陆页⾯,如果登陆成功再取HTTP_REFERER就是登陆页⾯⾃⼰的url,⽽不是之前的那个页⾯。
可以利⽤django的session,在转⼊登陆的时候,⽤的是页⾯的get请求,这时候在session中记录HTTP_REFERER,⽤户输⼊⽤户名密码进⾏登陆的时候(Post请求),从session中取出即可:
def login_user(request):
hod == 'GET':
#记住来源的url,如果没有则设置为⾸页('/')
request.session['login_from'] = ('HTTP_REFERER', '/')
#TODO:显⽰登陆页⾯,blablabla
hod == 'POST':
#TODO: ⽤户登录操作,blablabla
#重定向到来源的url
return HttpResponseRedirect(request.session['login_from'])
最后的重定向,有时候需要⽤户感觉到被重定向回去了,就写个简单的页⾯告诉⽤户两秒以后跳转,然后改改相应的login代码就⾏:
<p>两秒钟后转⼊如下链接,如果长时间没有响应请直接点击:</p>
<p><a href="{{ refresh_url }}" rel="external nofollow" >{{ refresh_url }}</a></p>
<meta http-equiv="refresh" content="2;url={{ refresh_url }}">
总结
以上所述是⼩编给⼤家介绍的Django框架之登录后⾃定义跳转页⾯的实现⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。