一. 绘画跟踪技术

  在客户端与服务端的一次会务中,多次的请求与相应,HTTP协议是无状态协议,也就是说每个请求都是独立的!无法记录前一次请求的状态。会话跟踪技术即能够实现多次回话间信息共享的作用,HTTP协议中可以使用Cookie来完成会话跟踪!在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术。

二.cookie技术

  Cookie是浏览器的技术,当浏览器第一次访问一个网站时,发送给服务端的是一个空的cookie,如果登录成功了,服务器可以向cookie的字典中插入值,以后在一定的时间内,浏览器访问此服务端,都会带着这个cookie字典.

Cookie语法:

1.设置cookie

 Obj=Httpresponse(“ok”)
Obj.set_cookie(“is_login”,True)
Obj.set_cookie(“username”,”amy”) #不写时间默认是两周
Obj.set_cookie(“username”,”amy”,max_age=20) #让浏览器20秒后清除cookie获取cookie

2.获取cookie

 Request.COOKIES
得到的是cookie字典{“is_login”:True,“username”:”amy”}
Request.COOKIES.get(“is_login”)
得到的是True

3.删除cookie

 Response.delete_cookie("cookie_key",path="/",domain=name)

三.session技术

  由于cookie的信息暴露在客户端,非常的不安全,而且数据量一但变大,会一定程度的影响速度,所以,出现了session,session是基于cookie的,session是服务端技术

1.设置session值

Request.session[“s_username”]=”amy”

这句话会做三件事:

  生成一个随机字符串作为表中session-key字段的值

  向表中django_session插入数据

    Session-key session-data

    随机字符串 加密后的{“s_username”:”amy”}

  向客户端相应时,加上sessionid=刚刚生成的随机字符创

2.获取session值

 S_username=request.session[“s_username”]

3.删除session值

 Del request.session[“s_username”]

4.Request.session.flush()

  (1) 找到钥匙

  (2) 从Django session表中过滤出该记录,并删除

  (3) 删除钥匙

四. 用户认证组件

视图函数中要使用用户认证组件需要引入auth模块

From Django.contribute import auth

前提:必须使用组Django提供auth_user表

插入命令:在manage.py中创建命令createsuperuser(python manage.py  createsuperuser)即为向该表中插入记录,通过此方式插入的密码是加密的,直接在表中插入密码不是加密的

1.数据库中查询数据是否存在(从auth_user表中)

查询成功返回用户对象,查询失败返回none:

auth.authenticate(username=”amy”,password=123)

2.保存用户状态信息

auth.login(request,user_obj)

相当于:request.session["user_id"]=user.pk

保存后可以使用request.user,代指当前登录对象,没有auth.login时,默认是匿名对 象,requester.user是全局变量

3.删除数据库中的记录,删除钥匙

auth.logout(request)

4.向auth_user表中插入数据用create_user接口,要先引入user

from Django.contrib.auth.models import User

User.objects.create_user(username=user,password=pwd)

5.重置密码

user=User.objects.get(username=request.user.username)
    user.set_password("666")
    user.save()


cookie,session,用户认证组件的更多相关文章

  1. Django组件 - cookie、session、用户认证组件

    一.cookie 1.会话跟踪技术 1)什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话 ...

  2. cookie、session与用户认证组件

    1.cookie def login(request): if request.method == "GET": return render(request,"login ...

  3. python 全栈开发,Day79(Django的用户认证组件,分页器)

    一.Django的用户认证组件 用户认证 auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户 ...

  4. 061.Python前端Django组件用户认证组件

    一 auth认证组件 在使用pymysql,数据库迁移的时候.,默认生成有十张表如下 查看author_user表结构 mysql> desc auth_user; +------------- ...

  5. web框架开发-Django用户认证组件

    可以用认证组件做什么 针对session的缺陷, 跟新数据时,不跟新key键, 用户认证组件是删除后再重建 用户认证组件很多功能可以直接使用 利用用户认证表(auth_user,通过Django自己创 ...

  6. django - 总结 - 用户认证组件

    用户认证组件 from django.contrib import auth 从auth_user表中获取对象,没有返回None,其中密码为密文,使用了加密算法 user = auth.authent ...

  7. 10.Django用户认证组件

    用户认证组件: 功能:用session记录登录验证状态: 前提:用户表,django自带的auth_user 创建超级用户:python manage.py createsuperuser       ...

  8. Django用户认证组件

    用户认证 主要分两部分: 1.auth模块   from django.contrib import auth 2.User对象 from django.contrib.auth.models imp ...

  9. django的用户认证组件

    DataSource:https://www.cnblogs.com/yuanchenqi/articles/9064397.html 代码总结: 用户认证组件: 功能:用session记录登录验证状 ...

随机推荐

  1. mingw qt(可以去掉mingwm10.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll的依赖,mingw默认都是动态链接gcc的库而TDM是静态链接gcc库,tdm版本更好用。用aspack压缩没有问题。qt本身不使用异常处理)good

    原文地址:mingw qt作者:孙1东 不使用Qt SDK,使用mingw编译qt源代码所遇问题及解决方法: configure -fast -release -no-exceptions -no-r ...

  2. 探究Promise的实现

    最终答案在一个类库里,地址 https://github.com/yahoo/ypromise 这个类库也有问题,就是下面这道面试题在IE9里实现不一致,类库里还是用了setTimeout.去年尝试用 ...

  3. JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题

    数据库版本号:Oracle 10g 字符集:SIMPLIFIED CHINESE_CHINA.US7ASCII JDK:1.6.0_45 Oracle驱动:ojdbc14.jar 使用JDBC操作数据 ...

  4. WPF 3D变换应用

    WPF可以提供的3D模型使我们可以轻松地创建3D实体,虽然目前来看还很有一些性能上的问题,不过对于一些简单的3D应用应该是可取的,毕竟其开发效率高,而且也容易上手. 下面给大家演示的是使用在WPF 3 ...

  5. matlab 高级函数

    2*randn(sz):0 均值,方差为 4(variance), standard deviation:标准差为 2: numel():returns the # of elements: nume ...

  6. 概率分布的 perplexity

    1. 一种 measurement 信息论中,perplexity is a measurement of how well a probability distribution or probabi ...

  7. WPF C#之读取并修改App.config文件

    原文:WPF C#之读取并修改App.config文件 简单介绍App.config App.config文件一般是存放数据库连接字符串的.  下面来简单介绍一下App.config文件的修改和更新. ...

  8. BigTable读后笔记

    BigTable读后笔记 GFS可能出现重复记录或者padding,Bigtable如何处理这种情况使得对外提供强一致性模型? ANS: Bigtable写入GFS的数据分为两种: 1)操作日志,当T ...

  9. 从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目

    原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  10. 好用的Markdown 编辑器及工具

    Markdown 是 2004 年由 John Gruberis 设计和开发的纯文本格式的语法,所以通过同一个名字它可以使用工具来转换成 HTML.readme 文件,在线论坛编写消息和快速创建富文本 ...