Django登录使用的技术和组件
登录
'''
获取用户所有的数据
每条数据请求的验证
成功之后获取所有正确的信息
失败则显示错误信息
'''
#登陆页面管理
def login(request):
if request.method == 'GET':
return render(request,'login.html')
elif request.method == 'POST':
obj = FM(request.POST)
sucst = obj.is_valid()
if sucst:
username = obj.cleaned_data['username']
password = obj.cleaned_data['password']
#添加注册方法--往数据库中添加字段
# models.UserInfo.objects.create(**obj.cleaned_data)
dic = models.UserInfo.objects.filter(username=username).first()
# print(dic.username)
if not dic:
return render(request, 'login.html',{'usererrors':'此用户未注册'})
elif dic.password == password:
request.session['username'] = username
request.session['is_login'] = True
return redirect('/index/')
else:
return render(request,'login.html',{'pswerrors':'密码错误'})
else:
# print(obj.errors)
return render(request, 'login.html', {'obj': obj})
登录
session
'''
生产随机字符串
写到用户浏览器
保持在session中
依赖cookie
'''
session本身封装了上述功能
request.session['username'] = username
request.session['is_login'] = True
session设置字段
session封装成装饰器进行用户验证
'''
获取用户登录字段状态
获取用户字段名称赋值username
查找用户所在组
通过组ID获取权限
'''
#这个是做管理员与商务部人员双重验证,管理材料出入库:不是管理员或商务部人员则返回主页
def identity(fun):
def verication(request,*args,**kwargs):
if request.session.get('is_login',None):
username = request.session.get('username')
#print(username)
groupid = models.UserInfo.objects.filter(username=username).first().usergroup_id
#print(groupid)
usergroup = models.UserGroup.objects.filter(id=groupid).first().groupname
#print(usergroup)
if usergroup == '管理员' or usergroup == '商务部':
return fun(request,*args,**kwargs)
else:
return redirect('/index/')
else:
return redirect('/index/')
return verication
session验证
用户退出
'''
清除session状态
'''
def logout(request):
request.session.clear()
return redirect('/login/')
清除session状态
Django登录使用的技术和组件的更多相关文章
- Django学习之九: auth 认证组件
目录 Django auth 认证组件 配置使用auth组件及其中间件 request.user 可以直接在template模版中使用 auth组件常用api 获取认证model类 认证检测装饰器@l ...
- 简单的django登录项目---带views视图函数(脚本文件)---用Bootstrap
简单的django登录项目 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdjango工程项目 ...
- Django登录与注销
一:Django中自带着登录,验证功能不用自己再去写登录功能. 1.从相应模块导入组件功能 from django.contrib.auth import authenticate,login 2.从 ...
- django 之知识点总结以及Form组件
一.model常用操作 1.13个API查询:all,filter,get ,values,values_list,distinct,order_by ,reverse , exclude(排除),c ...
- Django - session 会话跟踪技术
1.session简介 |session 英 /'seʃ(ə)n/ 美 /'sɛʃən/ 基于cookies开发,将值存到服务端 写session 读session Session是服务器端技术,利用 ...
- Django - cookies 会话跟踪技术
一.HTTP协议的无状态保存 两次请求之间没有关联 会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应 2.会话路径技术使用Cookie或session完成 我们知道HTTP ...
- 14 Django之Form和Model Form组件
一.什么是Form 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用 ...
- Django登录(含随机生成图片验证码)注册实例
登录,生成随机图片验证码 一.登录 - 随机生成图片验证码 1.随机生成验证码 Python随机生成图片验证码,需要使用PIL模块,安装方式如下: pip3 install pillow 1)创建图片 ...
- Django之 rest_framework (一基本组件)
目录 RESTFUL 序列化 视图三部曲 认证与权限组件 解析器 分页 RESTFUL 一.什么是RESTFUL REST与技术无关代表的是一种软件架构风格,REST是Representational ...
随机推荐
- Docker容器管理平台Rancher高可用部署——看这篇就够了
记得刚接触Rancher时,看了官方文档云里雾里,跟着官网文档部署了高可用Rancher,发现不管怎么折腾都无法部署成功(相信已尝试的朋友也有类似的感觉),今天腾出空来写个总结,给看到的朋友留个参考( ...
- TypeScript中 typeof ArrayInstance[number] 剖析
假设这样一个场景,目前业务上仅对接了三方支付 'Alipay', 'Wxpay', 'PayPal', 实际业务 getPaymentMode 会根据不同支付方式进行不同的付款/结算流程. const ...
- AtCoder Beginner Contest 178
比赛链接:https://atcoder.jp/contests/abc178/tasks A - not 题意 给出一个整数 $0 \le x \le 1$,如果 $x$ 是 $0$ 就输出 $1$ ...
- 【2020杭电多校】Total Eclipse 并查集+思维
题目链接:Total Eclipse 题意: t组输入,给你一个由n个点,m条边构成的图,每一个点的权值是ai.你每一次可以选择一批联通的点,然后让他们的权值都减去1.问最后把所有点的权值都变成0需要 ...
- 2019牛客暑期多校训练营(第八场)B Beauty Values && C CDMA
B题题意: 题目 给你n个数,让你把这一个序列中的所有子区间的Beauty Values加起来,Beauty Values是子区间内有几个不同的数 题解: 肯定不会是暴力,所以我们就要在各元素的位置上 ...
- hdu4770 Lights Against Dudely
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...
- Codeforces Round #547 (Div. 3) C. Polycarp Restores Permutation (数学)
题意:有一长度为\(n\)的序列\(p\),现在给你\(q_i=p_{i+1}-q_i \ (1\le i\le n)\),问你是否能还原出原序列,如果能救输出原序列,否则输出\(-1\). 题解:由 ...
- 用了很多年Dubbo,连Dubbo线程池监控都不知道,觉得自己很厉害?
前言 micrometer中自带了很多其他框架的指标信息,可以很方便的通过prometheus进行采集和监控,常用的有JVM的信息,Http请求的信息,Tomcat线程的信息等. 对于一些比较活跃的框 ...
- HTTP笔记1--Web及网络基础
web页面如何呈现? 客户端:通过发送请求获取服务器资源的 Web 浏览器 web是建立在 HTTP 协议上通信的 WWW(万维网/web)的构建技术 把 SGML(StandardGeneral ...
- Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本
Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 J ...