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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
图文详解WinPE下安装Python
May 17 Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Django框架实现的简单分页功能示例
Dec 04 Python
python通过tcp发送xml报文的方法
Dec 28 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
Python动态声明变量赋值代码实例
Dec 30 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
MoviePy简介及Python视频剪辑自动化
Dec 18 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 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中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
php递归json类实例
2014/12/02 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
js实现继承的5种方式
2015/12/01 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python实现自动上京东抢手机
2018/02/06 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
HTML5的革新 结构之美
2011/06/20 HTML / CSS
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
制冷与电控专业应届生求职信
2013/11/11 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
简历的自我评价范文
2014/02/04 职场文书
开工典礼策划方案
2014/05/23 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
党员检讨书
2014/10/13 职场文书
评先进个人材料
2014/12/29 职场文书
政府会议通知范文
2015/04/15 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL