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代码真的很爽
Aug 26 Python
python原始套接字编程示例分享
Feb 21 Python
python中requests库session对象的妙用详解
Oct 30 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
漂亮的Django Markdown富文本app插件的实现
Jan 02 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
python图像处理入门(一)
Apr 04 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
Python正则表达式急速入门(小结)
Dec 16 Python
详解python程序中的多任务
Sep 16 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图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
python重试装饰器的简单实现方法
2019/01/31 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
Python如何省略括号方法详解
2020/03/21 Python
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
教师专业自荐信
2014/05/31 职场文书
干部作风建设工作总结
2014/10/29 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
js作用域及作用域链工作引擎
2022/07/07 Javascript
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技