cookies和session使用详解

cookies

在Django 服务器端来设置 设置浏览器的COOKIE

HttpResponse 关于COOKIE的方法

  1. 添加、修改COOKIE
    HttpResponse.set_cookie(key, value=’’, max_age=None, expires=None)
    • key:cookie的名字
    • value:cookie的值
    • max_age:cookie存活时间,秒为单位
    • expires:具体过期时间,当不指定max_age和expires 时,关闭浏览器时此数据失效
  2. 删除COOKIE
    HttpResponse.delete_cookie(key):删除指定的key 的Cookie。 如果key 不存在则什么也不发生。

Django中的cookies(都是在views层完成)

  1. 使用 响应对象HttpResponse 等 将cookie保存进客户端

    1. 方法一:
      resp = HttpResponse()
      resp.set_cookie(‘cookies名’, cookies值, 超期时间)
    2. 方法二:
      resp = render(request,‘xxx.html’,locals())
      resp.set_cookie(‘cookies名’, cookies值, 超期时间)
    3. 方法三:
      HttpResponseRedirect等同样可以
  2. 获取cookie,通过 request.COOKIES 绑定的字典(dict) 获取客户端的 COOKIES数据
    value = request.COOKIES.get(‘cookies名’, ‘没有值!’)
    print("cookies名 = ", value)

  • 注:Chrome 浏览器 可以通过 ctrl+shift+i 的 Application >> Storage >> Cookies 查看和操作浏览器端所有的 Cookies 值

session

session对象是一个类似字典的SessionStore类型的对象, 可以用字典的方式进行操作

  1. 保存 session 的值到服务器
    • request.session[‘KEY’] = VALUE
    • VALUE = request.session.get(‘KEY’, 缺省值)
  2. 删除session的值
    1. del request.session[‘KEY’]
  • 注: 当session保存在数据库中时,需要迁移数据库

示例代码

#django views层
from django.conf.urls import url
from django.http import HttpResponse
from django.shortcuts import render

#存cookie
def set_cookies(request):
	resp =  HttpResponse('set is ok !')
	#set_cookie(key,value,max-age)
	resp.set_cookie('username','guoxiaonao',60*2)
	return resp

#获取cookie
def get_cookies(request):
	username = request.COOKIES.get('username')
	if username:
		html = '欢迎~%s'%(username)
	else:
		html = '请登录'
	return HttpResponse(html)

#存session
def set_session(request):
	request.session['username'] = 'Terry_s'
	return HttpResponse('set is ok')

##获取session
def get_session(request):
	username = request.session.get('username')
	html = 'session 获取到 %s' % (username)
	return HttpResponse(html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值