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 相关文章推荐
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
Jul 01 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
Python实现ping指定IP的示例
Jun 04 Python
pyspark 读取csv文件创建DataFrame的两种方法
Jun 07 Python
python 切换root 执行命令的方法
Jan 19 Python
Django urls.py重构及参数传递详解
Jul 23 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
python实现超级玛丽游戏
Mar 18 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
Mar 23 Python
python调用win32接口进行截图的示例
Nov 11 Python
python 实现定时任务的四种方式
Apr 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
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
CI框架表单验证实例详解
2016/11/21 PHP
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
python和php哪个更适合写爬虫
2020/06/22 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
大学生在校学习的自我评价
2014/02/18 职场文书
庆六一宣传标语
2014/10/08 职场文书
长城导游词400字
2015/01/30 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers