django写用户登录判定并跳转制定页面的实例


Posted in Python onAugust 21, 2019

1. 首先看要设置登陆的界面 book/view.py

@user_util.my_login #相当于 select_all=my_login(select_all)
def select_all(request):
 # 查询所有的书
 book_list = BookInfo.objects.all()
 # 返回
 return render(request, 'book/book_list.html', {'book_list': book_list})


@user_util.my_login #相当于 select_by_id=my_login(select_by_id)
def select_by_id(request,book_id):
 bookinfo=BookInfo.objects.get(id=book_id)
 return render(request,'book/book_detail.html',{'bookinfo':bookinfo})

@user_util.my_login 是在utils/user_utils.py里面写的装饰器

使用session判定是否登录:login_user_id = args[0].session.get(‘login_user_id')

#登陆用的装饰器

def my_login(func):
 def inner(*args,**kwargs):
  login_user_id = args[0].session.get('login_user_id')
  if login_user_id:
   return func(*args,**kwargs)
  else:
   return redirect(reverse('user:login'))
 return inner

2. 设置登录模块的界面

设置session键值对进行存储: request.session[‘login_user_id']=user[0].id

def login(request):
 #获取cookie
 remember_user_name=request.COOKIES.get('remember_user_name','')
 return render(request, "user/login.html",{'remember_user_name':remember_user_name})


def login_handler(request):
 # 判断请求方式
 if request.method == "GET":
  request_info = request.GET
 else:
  request_info = request.POST

 # 获取属性
 user_name = request_info.get("user_name",'').strip()
 user_pwd = request_info.get("user_pwd",'').strip()
 remember = request_info.get("remember")
 user_pwd = my_md5(user_pwd)
 user=User.objects.filter(name=user_name, pwd=user_pwd)
 #print(user[0].id)

 # 查询
 if len(user) != 0:
  #将登陆信息保存到session
  request.session['login_user_id']=user[0].id
  resp=HttpResponseRedirect(reverse("book:index"))
  #记住用户名
  if remember=='1':
   resp.set_cookie('remember_user_name',user_name,3600*24*7)
  else:
   resp.set_cookie('remember_user_name',user_name,0)
  return resp


  # 转发
  #return book_views.index(request)
  # 重定向
  #return HttpResponseRedirect(reverse("book:index"))

 else:

  return HttpResponseRedirect(reverse("user:login"))

以上这篇django写用户登录判定并跳转制定页面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
听歌识曲--用python实现一个音乐检索器的功能
Nov 15 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 Python
Python实现某论坛自动签到功能
Aug 20 Python
详解Python并发编程之从性能角度来初探并发编程
Aug 23 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
Mar 09 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 #Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 #Python
python机器学习包mlxtend的安装和配置详解
Aug 21 #Python
python 画出使用分类器得到的决策边界
Aug 21 #Python
Django url,从一个页面调到另个页面的方法
Aug 21 #Python
python requests更换代理适用于IP频率限制的方法
Aug 21 #Python
docker django无法访问redis容器的解决方法
Aug 21 #Python
You might like
在PHP中利用XML技术构造远程服务(下)
2006/10/09 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
Django框架模板用法入门教程
2019/11/04 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
业务经理岗位职责
2013/11/11 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
学校通报表扬范文
2015/05/04 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers