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绘制条形图方法代码详解
Dec 19 Python
python3连接MySQL数据库实例详解
May 24 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
详解如何用TensorFlow训练和识别/分类自定义图片
Aug 05 Python
django 控制页面跳转的例子
Aug 06 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
pycharm激活码快速激活及使用步骤
Mar 12 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入门速成(2)
2006/10/09 PHP
PHP header函数分析详解
2011/08/06 PHP
php5.3 注意事项说明
2013/07/01 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
教你php如何实现验证码
2016/01/20 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
跟老齐学Python之集合的关系
2014/09/24 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
Python3中的json模块使用详解
2018/05/05 Python
python sorted函数原理解析及练习
2020/02/10 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
django创建css文件夹的具体方法
2020/07/31 Python
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
党员个人总结范文
2015/02/14 职场文书
关于观后感的作文
2015/06/18 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
MySQL创建表操作命令分享
2022/03/25 MySQL