Django之cookie and session

会话追踪技术

  

1 什么是会话跟踪技术
我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过程中,你会向10086发出多个请求,那么这多个请求都在一个会话中。
在JavaWeb中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束。 在一个会话的多个请求中共享数据,这就是会话跟踪技术。例如在一个会话中的请求如下: ? 请求银行主页;

  • 请求登录(请求参数是用户名和密码);
  • 请求转账(请求参数与转账相关的数据);
  • 请求信誉卡还款(请求参数与还款相关的数据)。
    在这上会话中当前用户信息必须在这个会话中共享的,因为登录的是张三,那么在转账和还款时一定是相对张三的转账和还款!这就说明我们必须在一个会话过程中有共享数据的能力。

2 会话路径技术使用Cookie或session完成
我们知道HTTP协议是无状态协议,也就是说每个请求都是独立的!无法记录前一次请求的状态。但HTTP协议中可以使用Cookie来完成会话跟踪!在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术。

cookie

response.set_cookie(key,value)    #设置cookie

request.COOKIE.get(key)    #使用cookie

  

session

request.session[key]=value
          ‘‘‘

            if request.COOKIE.get("sessionid"):
                更新

                 在django—session表中创建一条记录:
                   session-key                                     session-data
                   ltv8zy1kh5lxj1if1fcs2pqwodumr45t                  更新数据

            else:

                1 生成随机字符串   ltv8zy1kh5lxj1if1fcs2pqwodumr45t
                2 response.set_cookie("sessionid",ltv8zy1kh5lxj1if1fcs2pqwodumr45t)
                3 在django—session表中创建一条记录:
                   session-key                                     session-data
                   ltv8zy1kh5lxj1if1fcs2pqwodumr45t       {"is_login":True,"username":"yuan"}

            ‘‘‘

reqeust.session[key]

   ‘‘‘

    1  request.COOKIE.get("session")  #  ltv8zy1kh5lxj1if1fcs2pqwodumr45t

    2  django-session表中过滤纪录:

       在django—session表中创建一条记录:
               session-key                                   session-data
               ltv8zy1kh5lxj1if1fcs2pqwodumr45t       {"is_login":True,"username":"yuan"}

       obj=django—session.objects .filter(session-key=ltv8zy1kh5lxj1if1fcs2pqwodumr45t).first()

    3 obj.session-data.get("is_login")
    ‘‘‘

request.session.flush()

    ‘‘‘
    1 randon_str=request.COOKIE.get("sessionid")

    2 django-session.objects.filter(session-key=randon_str).delete()

    3 response.delete_cookie("sessionid",randon_str)

    ‘‘‘

  

原文地址:https://www.cnblogs.com/swearBM/p/10427589.html

时间: 2024-11-05 23:30:54

Django之cookie and session的相关文章

[py][mx]django的cookie和session操作

这玩意可以实现7天免登录等功能. session和cookie机制原理和交互过程 交互过程 ① 客户端访问,无服务端写入的Cookie ② 服务端的Cookie写入浏览器 ③ 浏览器解析Cookie,保存至浏览器文件 ④ 客户端访问,有服务端写入的Cookie ⑤ 服务器获取 django请求中的cookie 第一次访问服务端会给一个csrf的cookie 登录完成后,默认给一个为期半个月的cookie 用于访问别的也没使用. django中cookie与session的实现原理 app默认注册

十一、Django的cookie和session

一.Django的cookie和session 一.会话 会话可以理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束. 在一个会话的多个请求中,需要共享数据,就是会话跟踪技术.比如你在登陆银行主页,请求登录.请求取款.请求转账.请求还款...,在这个会话中,当前的用户信息必须在这个会话中是共享的,因为登录的是你,那么取款转账时一定是相对你的取款转账 .这就说明我们必须在一个会话过程中有共享数据的

Django组件——cookie与session

Django组件--cookie与session 一.会话跟踪技术 1.什么是会话跟踪技术 先了解一下什么是会话.可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打电话,你就是客户端,而10086服务人员就是服务器,从双方接通电话那一刻起,会话就开始了,到某一方挂断电话就表示会话结束.在通话过程中,你会向10086发出多个请求,这多个请求都在一个会话中. 在JavaWeb在,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览

Django之Cookie、Session、CSRF

Cookie 1.获取Cookie: 1 2 3 4 5 6 request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)     参数:         default: 默认值            salt: 加密盐         max_age: 后台控制过期时间 2.设置Cookie: 1 2 3 4 5 6 7 8 9 10 11 12 13 rep

django的cookie和session以及内置信号、缓存

cookie和session cookie和session的作用: cookie和session都记录了客户端的某种状态,用来跟踪用户访问网站的整个回话.两者最大的区别是cookie的信息是存放在浏览器客户端的,而session是存放在服务器端的 cookie的基本操作 cookie增删改查操作 1.设置Cookies response.set_cookie("cookie_key","value") 2.获取Cookies value = request.COOK

Django之cookie和session

一.cookie 保存在客户端浏览器上的键值对 1.获取cookie 1 request.COOKIES['key'] 2 request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) 3 参数: 4 default: 默认值 5 salt: 加密盐 6 max_age: 后台控制过期时间 2.设置cookie 1 rep = HttpResponse(...) 或 rep = render(request,

Django中Cookie和Session的基本配置以及设置

Cookie 1.获取Cookie: request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) 参数: default: 默认值 salt: 加密盐 max_age: 后台控制过期时间 2.设置Cookie: rep = HttpResponse(...) 或 rep = render(request, ...) rep.set_cookie(key,valu

Django中cookie和session

cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况. 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的. 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留.会话中产生的数据又是我们需要保存的,也就是说要"保持状态".因此cookie就是在这样一个场景

pyhton框架Django之cookie和session

一,cookie和session的理解 cookies 是浏览器为 Web 服务器存储的一小段信息. 每次浏览器从某个服务器请求页面时,它向服务器回送之前收到的cookies.它保存在浏览器下的某个文件夹下.保存在浏览器端的键值对可以利用做登录 浏览器下的cookei: Session Django的Session机制会向请求的浏览器发送cookie字符串.同时也会保存到本地一份,用来验证浏览器登录是否为同一用户.它存在于服务器,Django默认会把session存入到数据库中. Session

Django框架-cookie与session

from django.shortcuts import redirect from django.shortcuts import render from login import models # 获取类才能orm操作库 """ cookie与session解决登录验证 1.models中创建UserInfo类 python manage.py makemigrations login /migrate login --database=login_db 2.urls.p