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检查字符串是否是正确ISBN的方法
Jul 11 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
python通过配置文件共享全局变量的实例
Jan 11 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
Jun 27 Python
python3获取url文件大小示例代码
Sep 18 Python
Python如何优雅获取本机IP方法
Nov 10 Python
wxPython色环电阻计算器
Nov 18 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 Python
我对PyTorch dataloader里的shuffle=True的理解
May 20 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导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
不错的一个日期输入 动态
2006/11/06 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
Python中的ctime()方法使用教程
2015/05/22 Python
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
tensorflow识别自己手写数字
2018/03/14 Python
详解Python中的动态属性和特性
2018/04/07 Python
Python3中的bytes和str类型详解
2019/05/02 Python
python 修改本地网络配置的方法
2019/08/14 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
法国家具及室内配件店:home24
2017/01/21 全球购物
国际商务专业求职信
2014/07/15 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
一般党员对照检查材料
2014/09/24 职场文书
办公室主任个人总结
2015/02/28 职场文书
医德医风自我评价2015
2015/03/03 职场文书
我是特种兵观后感
2015/06/11 职场文书
宾馆客房管理制度
2015/08/06 职场文书
聘用合同范本
2015/09/21 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
新手初学Java List 接口
2021/07/07 Java/Android
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android