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实现跨文件全局变量的方法
Jul 07 Python
python中去空格函数的用法
Aug 21 Python
Django发送html邮件的方法
May 26 Python
Python中使用不同编码读写txt文件详解
May 28 Python
对python3 urllib包与http包的使用详解
May 10 Python
python二维列表一维列表的互相转换实例
Jul 02 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
python字符串替换re.sub()实例解析
Feb 09 Python
python中shell执行知识点
May 06 Python
python使用re模块爬取豆瓣Top250电影
Oct 20 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
你需要掌握的20个Python常用技巧
Feb 28 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抓即时股票信息
2006/10/09 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
php数组和链表的区别总结
2019/09/20 PHP
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
python实现连接mongodb的方法
2015/05/08 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
通过代码实例了解Python sys模块
2020/09/14 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
机械绘图员岗位职责
2013/11/19 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
中国好声音广告词
2014/03/18 职场文书
奠基仪式策划方案
2014/05/15 职场文书
活动总结新闻稿
2014/08/30 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
紫日观后感
2015/06/05 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android