Django框架之登录后自定义跳转页面的实现方法


Posted in Python onJuly 18, 2019

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都可以这么做。

注销操作:

因为不需要单独的注销页面,相对简单,利用HTTP_REFERER,Django的注销页面这样写就行:

def logout_user(request):
 logout(request)
 return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))

登录操作:

登陆操作相对复杂,因为一般都有单独的登陆页面,如果登陆成功再取HTTP_REFERER就是登陆页面自己的url,而不是之前的那个页面。

可以利用django的session,在转入登陆的时候,用的是页面的get请求,这时候在session中记录HTTP_REFERER,用户输入用户名密码进行登陆的时候(Post请求),从session中取出即可:

def login_user(request):
 if request.method == 'GET':
  #记住来源的url,如果没有则设置为首页('/')
  request.session['login_from'] = request.META.get('HTTP_REFERER', '/')
  #TODO:显示登陆页面,blablabla
 elif request.method == '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框架之登录后自定义跳转页面的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python统计一个文本中重复行数的方法
Nov 19 Python
Python下使用Psyco模块优化运行速度
Apr 05 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
python实现PID算法及测试的例子
Aug 08 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
python中的itertools的使用详解
Jan 13 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
Python爬取梨视频的示例
Jan 29 Python
python编程项目中线上问题排查与解决
Nov 01 Python
django页面跳转问题及注意事项
Jul 18 #Python
django框架模板语言使用方法详解
Jul 18 #Python
Django中间件基础用法详解
Jul 18 #Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 #Python
Django 实现图片上传和显示过程详解
Jul 18 #Python
Django框架模型简单介绍与使用分析
Jul 18 #Python
python使用pandas处理excel文件转为csv文件的方法示例
Jul 18 #Python
You might like
深入了解php4(2)--重访过去
2006/10/09 PHP
有关php运算符的知识大全
2011/11/03 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
php跨服务器访问方法小结
2015/05/12 PHP
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
屏蔽script注入小例子
2013/11/12 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
利用Python实现网络测试的脚本分享
2017/05/26 Python
python @property的用法及含义全面解析
2018/02/01 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
Python数据可视化之画图
2019/01/15 Python
Python 控制终端输出文字的实例
2019/07/12 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
化学实验员岗位职责
2013/12/28 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
主要领导对照检查材料
2014/08/26 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
Python简易开发之制作计算器
2022/04/28 Python
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL