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 25 Python
python分析作业提交情况
Nov 22 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
Python之list对应元素求和的方法
Jun 28 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
Python随机数函数代码实例解析
Feb 09 Python
python如何调用百度识图api
Sep 29 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 17 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 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
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
python设置表格边框的具体方法
2020/07/17 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
Html5新增标签有哪些
2017/04/13 HTML / CSS
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
PHP经典面试题
2016/09/03 面试题
中职生自荐信
2013/10/13 职场文书
总经理工作职责范文
2014/03/14 职场文书
成语的广告词
2014/03/19 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
Django drf请求模块源码解析
2021/06/08 Python