django 中 cookie与session 相关的知识
cookie :它是一个字典
设置cookie :
def index(request): response = HttpResponse('index') expires = datetime(year=2020,month=2,day=26,hour=22) response.set_cookie('username','zhutianle',expires=expires,path='/index1/',max_age=3600) return response
在页面返回字符串 'index' 利用返回页面的对象,设置cookie(cookie的键,cookie的值,expires到期时间,path是只允许那个url,max_age最大时间)
1. 若没有填写 max_age, expires ,默认都为None
此时该cooike为临时的,只存在浏览器内存中, 关闭浏览器则自动删除
2. 只有max_age, 则按秒计算过期时间, 浏览器会存在本地缓存路径, 并自动删除过期cookie
3. 只有expires, 则按照时间字符串计算过期时间, 浏览器会存在本地缓存路径, 自动删除过期cookie
3. 若 max_age和 expires 同时存在, 则默认使用 max_age
4. 如果设置的cookie时间小于计算机时间, 浏览器则不提取cookie
获取cookie:
def get_cookie(request): cookies = request.COOKIES print(cookies) #它是一个字典 username = cookies.get('username') return HttpResponse(username)
删除cookie:
def delete_cookie1(request): response = HttpResponse('删除cookie') response.delete_cookie('username') return response
另一种删除 cookie:
def delete_cookie2(request): cookie = request.COOKIES cookie.clear() return HttpResponse('clear')
session :
设置session:
def session_view(request): request.session['username'] = 'kangbazi' # expiry = timedelta(days=2) request.session.set_expiry(3600) #只支持 整型 0 None return HttpResponse('session_view')
获取session:
def get_session_view(request): username = request.session.get('username') return HttpResponse(username)
cookie 和 session的区别:
简单跟大家说一下 两者的区别,cookie是存放在客户端 没有session 安全性高,只能存放4kb数据 ,而session 存放在服务端 安全性高,能存放的数据大
cookie 和 session的作用:
他们的作用呢!http 是无状态的,比如我们在实现登录的时候 设置他们可以让让浏览器记住我们,下次访问网页的时候,下次访问的时候就不需要登录了,如果设置cookie和session的过期时间过期了 那么也会失效。