Day71 分页,cookie and Session
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的更多相关文章
- 6月25日 Django 分页 cookie、session
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- Python学习(三十六)—— Cookie、Session和自定义分页
一.Django中操作Cookie 获取Cookie request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR ...
- Django框架详细介绍---cookie、session、自定义分页
1.cookie 在HTTP协议介绍中提到,该协议是无状态的,也就是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的 ...
- Cookie、Session和自定义分页
一.cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响, ...
- 自定义分页及Cookie、Session机制
分页 自定义分页 data = [] , ): tmp = {"id": i, "name": "alex-{}".format(i)} d ...
- python自动化开发-[第十九天]-分页,cookie,session
今日概要: 1.cookie和session 2.csrf 跨站请求伪造 3.自定义分页 一.上节回顾: http请求的本质: - Http请求本质 浏览器(socket客户端): 2. socket ...
- Django - Cookie、Session、自定义分页和Django分页器
2. 今日内容 https://www.cnblogs.com/liwenzhou/p/8343243.html 1. Cookie和Session 1. Cookie 服务端: 1. 生成字符串 2 ...
- django基础之Ajax、分页、cookie与session
目录: Ajax之json Ajax简介 jquery实现的ajax js实现的ajax django分页器 COOKIE与SESSION 一.Ajax之json 1.什么是json? 定义: JSO ...
- cookie、session、分页
一.cookie HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情 ...
随机推荐
- dede数据库内容替换,去掉文章内容中的img标签
1.织梦已经给我们准备好了数据库内容替换工具,在采集->批量维护->数据库内容替换 2.织梦的文章内容一般在放在dede_addonarticle表body字段中. (1).选择好数据表和 ...
- HttpApplicationState与HttpApplication
HttpApplicationState 类的单个实例在客户端第一次从某个特定的 ASP.NET 应用程序虚拟目录中请求任何 URL 资源时创建.对于 Web 服务器上的每个 ASP.NET 应用程序 ...
- mathematica里面清除全部变量
基本在一个独立代码开始都写: Clear["Global`*"] (*Clear all variables*) 就可以了
- 2018.09.27 hdu5564Clarke and digits(数位dp+矩阵快速幂)
传送门 好题啊. 我只会写l,rl,rl,r都很小的情况(然而题上并没有这种数据范围). 但这个dp转移式子可以借鉴. 我们用f[i][j][k]f[i][j][k]f[i][j][k]表示当前在第i ...
- 2018.09.23 bzoj1076: [SCOI2008]奖励关(期望+状压dp)
传送门 一道神奇的期望状压dp. 用f[i][j]f[i][j]f[i][j]表示目前在第i轮已选取物品状态为j,从现在到第k轮能得到的最大贡献. 如果我们从前向后推有可能会遇到不合法的情况. 所以我 ...
- 2018.09.23 孙悟空大战鲤鱼精(单调队列优化dp)
描述 孙悟空大战鲤鱼精,孙悟空在通天河遇到鲤鱼精,他嫉恶如仇,看见妖精就手痒(忘了自己是妖精).但是鲤鱼精知道孙悟空的厉害,在孙悟空来到通天河,鲤鱼精就跑到了河对面.于是孙悟空就去追鲤鱼精. 我们可以 ...
- Django入门与实践-第12章:复用模板(完结)
http://127.0.0.1:8000/http://127.0.0.1:8000/boards/1/http://127.0.0.1:8000/boards/2/http://127.0.0.1 ...
- python pip国内源
pip国内的这个源最快 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 修改源方法: 临时使用: 可以在使用pip的时候在后面加上-i参数,指定pip ...
- js,java,jstl多分隔符分割字符串
1.js多分隔符 分割字符串 var username = “zhao,li;wang.liu”: var arr = str.split(/;|:|,|,|./); 括号里面可以写多分割符号,中英 ...
- QDesktopWidget
在Qt中提供了QDesktopWidget类,提供屏幕的有关信息. 可以这么作: QDesktopWidget *d=QApplication::desktop(); int width=d-> ...
