django cookie,session,auth
一.最完美的auth
auth_user 是用来存储的用户注册的username,password
auth 首先需要引入模块
from django.contrib import auth 用户认证的前提是:使用django自带用户表auth_user 插入数据,在manage.py下插入
createsuperuser
通过添加username,password 来实现创建auth_user 登录数据表 1.登录逻辑
def login(request):
if request.method == "GET":
return render(request, "login.html")
else:
#1.接收输入用户名和密码
user = request.POST.get("user")
pwd = request.POST.get("pwd")
print(user, pwd)
#2. 通过auth.authenticate判断输入的是否正确
#这里有三次变化{
# 1.将用户名,密码输入在user_name进行验证,成功后生成系统自带的随机session_id
# 2.将输入的用户名和密码写入
# 3.给浏览器返回session_id
#}
user_obj = auth.authenticate(username=user, password=pwd)
#4,如果输入成功,返回登录页面
if user_obj:
#5.将user_obj赋值给user
auth.login(request, user_obj)
return redirect("/books/")
else:
return redirect("/login/")
登录
2.注销,本质上是flush()操作,清楚session_id
def logout(request):
auth.logout(request)
return redirect("/login/")
注销
3.注册
from django.contrib.auth.models import User
#1.注册前需要引入模块 def reg(request):
if request.method == "GET":
return render(request, "reg.html")
else:
user = request.POST.get("user")
pwd = request.POST.get("pwd")
#2.User的为什么不用create,因为用create会生成明文,不安全
#这个创建在user_auth里
User.objects.create_user(username=user, password=pwd)
return redirect("/books/")
注册
4.修改密码
def set_password(request):
if request.method == "GET":
return render(request, "set_password.html")
else:
#1.验证用户名是否存在
user = User.objects.get(username=request.user.username)
pwd = request.POST.get("pwd")
#2修改密码
user.set_password(raw_password=pwd)
user.save()
return redirect("/books/")
修改密码
django cookie,session,auth的更多相关文章
- Django 认证系统 cookie & session & auth模块
概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie的工作原理是:由服务器产生内容,浏 ...
- 登陆验证系统实例-三种(cookie,session,auth)
登陆验证 因为http协议是无状态协议,但是我们有时候需要这个状态,这个状态就是标识 前端提交from表单,后端获取对应输入值,与数据库对比,由此对象设置一个标识,该对象 在别的视图的时候,有此标识, ...
- 概念与用法-cookie,session,auth (认证系统)
COOKIE 与 SESSION 概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie ...
- django cookie session 自定义分页
cookie cookie的由来 http协议是无状态的,犹如人生若只如初见,每次都是初次.由此我们需要cookie来保持状态,保持客户端和服务端的数据通信. 什么是cookie Cookie具体指的 ...
- Django Cookie Session和自定义分页
Django中操作Cookie 获取Cookie request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, ...
- day55:django:cookie&session
目录 1.Cookie 1.Cookie前戏 2.Cookie的引入 3.django中操作cookie 2.Session 1.cookie的局限性 2.session技术 3.django操作se ...
- Django Cookie,Session
Cookie Cookie的由来 HTTP协议是无状态的,每次请求都是独立的,对服务器来说,每次的请求都是全新的,上一次的访问是数 据是无法保留到下一次的 某些场景需要状态数据或者中间数据等相关对下一 ...
- django cookie session操作
Cookie是什么? cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是 ...
- Python Web框架篇:Django cookie和session
part 1 概念 在Django里面,cookie和session都记录了客户端的某种状态,用来跟踪用户访问网站的整个回话. 两者最大的区别是cookie的信息是存放在浏览器客户端的,而sessio ...
随机推荐
- 《30天自制操作系统》笔记3 --- (Day2 上节)完全解析文件系统
Day2 汇编语言学习与Makefile入门 本文仅带着思路,研究源码里关于文件系统的参数 关于day2主程序部分及更多内容,请看<30天自制操作系统>笔记 导航 发现学习中的变化 源码差 ...
- 开源组件websocket-sharp中基于webapi的httpserver使用体验
一.背景 因为需要做金蝶ERP的二次开发,金蝶ERP的开放性真是不错,但是二次开发金蝶一般使用引用BOS.dll的方式,这个dll对newtonsoft.json.dll这个库是强引用,必须要用4.0 ...
- sql server 批量备份数据库及删除N天前的备份数据
很多时候,我们都需要将数据库进行备份,当服务器上数据库较多时,不可能一个数据库创建一个定时任务进行备份,这时,就需要进行批量的数据库备份操作,好了,废话不多说,具体实现语句如下: 1 2 3 4 5 ...
- Python OpenCV 显示图片,图片分类
def divide_image(path,g_path1,g_path0): img_lst = os.listdir(path) for i in img_lst: print('类别1,类别0' ...
- Dubbo简介与使用
1:Dubbo是什么 阿里生产的一种rpc 实现框架 Dubbo 是一个分布式服务框架,是阿里巴巴开源项目 ,被国内电商及互联网项目中使用. Dubbo 致力于提供高性能和透明化的RPC远程服务调用 ...
- linux内核树的建立(Ubuntu)
博客地址:http://www.cnblogs.com/zengjianrong/p/3178874.html 1.搜索源码 2.下载源码,下载路径可设为:/usr/src/ 3.解压源码 4.进入源 ...
- 集合类源码(六)Map(HashMap, Hashtable, LinkedHashMap, WeakHashMap)
HashMap 内部结构 内部是一个Node数组,每个Node都是链表的头,当链表的大小达到8之后链表转变成红黑树. put操作 final V putVal(int hash, K key, V v ...
- Centos 7.6 安装 oracle 10.2.0.1 数据库软件
step 1: 编辑 /etc/redhat-release :内容为redhat-4 step 2: 安装32位的软件包:yum install libXp.i686 libXt.i686 li ...
- 【mybatis】mybatis一条sql更新两张数据表,mybatis关联更新多张数据表
示例sql: <update id="receipt" parameterType="com.pisen.cloud.luna.ms.security.code.b ...
- 有趣的css图形实现
css通过 border .border-radius .transform,实现各种图形. <!DOCTYPE html> <html lang="en"> ...