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实现从订阅源下载图片的方法
Mar 11 Python
python通过索引遍历列表的方法
May 04 Python
Python 'takes exactly 1 argument (2 given)' Python error
Dec 13 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
python selenium firefox使用详解
Feb 26 Python
15行Python代码实现网易云热门歌单实例教程
Mar 10 Python
详解python中递归函数
Apr 16 Python
使用pandas读取文件的实现
Jul 31 Python
python global关键字的用法详解
Sep 05 Python
Python threading.local代码实例及原理解析
Mar 16 Python
python实现在列表中查找某个元素的下标示例
Nov 16 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
php上传文件问题汇总
2015/01/30 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
Python实现二分法算法实例
2015/02/02 Python
进一步理解Python中的函数编程
2015/04/13 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
python实现教务管理系统
2018/03/12 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
活动总结书
2014/05/08 职场文书
个人简历求职信范文
2015/03/20 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书