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的Flask框架中实现全文搜索功能
Apr 20 Python
Python实现SMTP发送邮件详细教程
Mar 02 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
Python中那些 Pythonic的写法详解
Jul 02 Python
flask框架url与重定向操作实例详解
Jan 25 Python
python导入库的具体方法
Jun 18 Python
浅谈pandas dataframe对除数是零的处理
Jul 20 Python
python使用ctypes库调用DLL动态链接库
Oct 22 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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
php str_pad 函数使用详解
2009/01/13 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
js实现交通灯效果
2017/01/13 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
JS实现的找零张数最小问题示例
2017/11/28 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
node.js通过url读取文件
2020/10/16 Javascript
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
python如何爬取动态网站
2020/09/09 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
电脑教师的自我评价
2013/12/18 职场文书
前台文员个人求职信范文
2014/01/05 职场文书
小学生寒假家长评语
2014/04/16 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang