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的过期时间过期了 那么也会失效。
posted @ 2020-02-27 14:23  喜欢钻研Python艺术  阅读(136)  评论(0编辑  收藏  举报