• cookie 是保存在客户端的键值对.

  • cookie本身最大支持4096字节,保存在客户端的

  • session是保存在服务器端的键值对.(依赖cookie)

cookie和session

cookie的由来?

因为http请求是没有状态的,每一次请求都是独立的(对于服务端来说,一切都是只如初见!)

cookie 是什么?

就是保存在浏览器上的键值对。

cookie的应用

1.登录、七天免登录

2. 记录用户的浏览习惯.

3.简单的投票限制。

cookie 默认关闭浏览器 就消失了。。。

session

session是什么 ?

是保存在服务器端的键值对.

session 必须依赖于cookie

Django中session 做的事情:

1. 在服务器端生成随机字符串

2.生成一个和上面随机字符串对应的大字典,用来保留用户数据的。

3. 随机字符串当成Cookie返回给浏览器

取Session:

1. 从请求携带的COOKIE里面找到随机字符串.

2. 拿到随机字符串 去session 中对应的大字典.

3.从大字典中根据key 取值.

session 的优势

1. 比cookie能存的数据多。

2. 安全性好 ,数据都保存在服务端。

session的缺点

1.session 数据量大,会占用一些内存.

获取cookie

request.COOKIES['key']
request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)

  

参数:

  • default: 默认值
  • salt: 加密盐
  • max_age: 后台控制过期时间

设置Cookie

rep = HttpResponse(...)
rep = render(request, ...) rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt='加密盐',...)

  

删除cookie

def logout(request):
rep = redirect("/login/")
rep.delete_cookie("user") # 删除用户浏览器上之前设置的usercookie值
return rep

例子

def login(request):
if request.method=='POST':
user = request.POST.get('username')
print(user)
pwd =request.POST.get('pwd')
if user =='alex' and pwd =='dsb':
#登录成功
#告诉浏览器保存一个键值对
rep =redirect('/home/')
print(rep)
# rep.set_cookie('is_login',1)
rep.set_signed_cookie(' ','1',salt='s10nb') #加盐的cookie

return rep
return render(request,'login.html') def home(request):
  #从请求的cookie中找
# ret =request.COOKIES.get('is_login',0)
ret=request.get_signed_cookie('is_login',default='0',salt='s10nb')#取加过盐的cookie
if ret =='1' :
#表示已经登录过了。
return render(request,'home.html')
else:
return redirect('/login/')

  

 Cookie默认关闭浏览器就失效

三、session

Day71 分页,cookie and Session的更多相关文章

  1. 6月25日 Django 分页 cookie、session

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  2. Python学习(三十六)—— Cookie、Session和自定义分页

    一.Django中操作Cookie 获取Cookie request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR ...

  3. Django框架详细介绍---cookie、session、自定义分页

    1.cookie 在HTTP协议介绍中提到,该协议是无状态的,也就是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的 ...

  4. Cookie、Session和自定义分页

    一.cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响, ...

  5. 自定义分页及Cookie、Session机制

    分页 自定义分页 data = [] , ): tmp = {"id": i, "name": "alex-{}".format(i)} d ...

  6. python自动化开发-[第十九天]-分页,cookie,session

    今日概要: 1.cookie和session 2.csrf 跨站请求伪造 3.自定义分页 一.上节回顾: http请求的本质: - Http请求本质 浏览器(socket客户端): 2. socket ...

  7. Django - Cookie、Session、自定义分页和Django分页器

    2. 今日内容 https://www.cnblogs.com/liwenzhou/p/8343243.html 1. Cookie和Session 1. Cookie 服务端: 1. 生成字符串 2 ...

  8. django基础之Ajax、分页、cookie与session

    目录: Ajax之json Ajax简介 jquery实现的ajax js实现的ajax django分页器 COOKIE与SESSION 一.Ajax之json 1.什么是json? 定义: JSO ...

  9. cookie、session、分页

    一.cookie HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情 ...

随机推荐

  1. javascript的数据检测总结

    目录 javaScript的数据检测 1.typeof 2.instanceof 3.constructor 4.Object.prototype.toString.call()--------- 一 ...

  2. centos7下源码安装mysql5.7.16

    一.下载源码包下载mysql源码包 http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.16.tar.gz 二.安装约定: 用户名:mysql 安装目录 ...

  3. php下ajax的文件切割上传

    html5中的File对象继承Blob二进制对象,Blob提供了一个slice函数,可以用来切割文件数据. <!DOCTYPE HTML> <html lang="zh-C ...

  4. phpcms中调用外部网站数据

    1.在phpcms后台模块->模块管理->数据源->外部数据源 中 添加外部数据源 2.在phpcms前台模板中,使用get标签获取数据源中数据. {pc:get sql=" ...

  5. linux下每次git clone不需输入账号密码的方法

    在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式: ame@zhenyun ~ $touch .git-credentials ame@zhenyu ...

  6. JSP标准标签库JSTL

    1.什么是JSTL? JSP标准标签库(JSP Standard Tag Library) 2.JSTL标准标签库中的常用标签 JSTL是JSP页面的标签库,实质上是一段Java代码.我们常用的是它的 ...

  7. mysql简单实现查询结果添加序列号的方法

    方法1: SELECT @rownum :=@rownum + 1 AS rownum, t.* FROM integral_system_user t, (SELECT @rownum := 0) ...

  8. [SoapUI] 重载JSONComparator比对JSON Response,忽略小数点后几位,将科学计数法转换为普通数字进行比对,在错误信息中打印当前循环的case number及其他附加信息

    重载JSONComparator比对JSON Response,忽略小数点后几位,将科学计数法转换为普通数字进行比对,在错误信息中打印当前循环的case number及其他附加信息 package d ...

  9. OSGi 系列(十)之 Blueprint

    OSGi 系列(十)之 Blueprint blueprint 是 OSGi 的一个规范,类似于 spring 的 IOC,用来处理 OSGi 的动态特性,可以大大简化服务的使用. blueprint ...

  10. APP自动化测试怎么测?

    一般来说工具还有技术都是千篇一律 测试测到最后还是业务能力...