Django11:cookies和session

一、cookies

        cookies在浏览器中是以键值对的形式存储,且均已ASDII字符串的形式存储。

1、存储

HttpResponse.set_cookie(key, value=’’, max_age =None, expires=None)
  • key:cookie的名字
  • value:cookie的名字
  • max_age:cookie存活时间,秒为单位
  • expires:具体过期时间

当不指定max_age和expires时,关闭浏览器时此数据失效

例:views.py

from django.shortcuts import render
from django.http import HttpResponse


def set_cookies(request):
    resp = HttpResponse('set cookis is ok')
    resp.set_cookie('uuname', 'wzh', 500)
    return resp

 2、删除cookies

HttpResponse.delete_cookie(key)

        删除指定key的cookie。如果key不存在则说明都没发生。

3、获取cookies

        通过requestion.cookies绑定的字典获取客户端的cookies数据

value = rquest.COOKIES.get(‘cookies名’, ‘默认值’)

二、session

        session是在服务器上开辟一段空间用于保留浏览器和服务器交互时的重要数据。

实现方式:

        使用session需要在浏览器客户端启动cookie,且在cookie中存储sessionId。每个客户端都可在服务器端有一个独立的session。注意不同的请求之间不会共享这个数据,与请求者一一对应。

1、session初始配置

(1)在INSTALLED_APPS列表中添加

INSTALLED_APPS = [\
	# 启用session应用
	‘django.contrib.sessions’,
]

(2)向MIDDLEWARE列表中添加:

MIDDLEWARE = [
	# 启用session中间件
	‘django.contrib.sessions.middleware.SessionMiddleware’
]

2、session的使用

        session是一个类似于字典的SessionStore类型的对象,可用类似于字典的方法进行操作。session能够存储如字符串,整型,字典,列表等

(1)保存session的值到服务器

reques.sesion[‘KEY’] = VALUE

(2)获取session的值

value = request.session[‘KEY’]
value = request.session.get(‘KEY’, 默认值)

(3)删除session

del request.session[‘KEY’]

例:views.py

def set_session(request):
    request.session['uuname'] = 'wzh'
    return HttpResponse('set session is ok')


def get_session(request):
    value = request.session['uuname']
    return HttpResponse('session value is %s'%(value))

3、settings.py中相关配置项

(1)SESSION_COOKIE_AGE

        指定sessionid在cookies中的保存时长(默认2周),如

SESSION_COOKIE_AGE = 60*60*24*7*2

(2)SESSION_EXPIRE_AT_BROWSER_CLOSE = True

        设置只有浏览器关闭是,session就失效(默认是False)

注:

  • Django中的session数据存储在数据库中,所以使用session前需确保已经执行过migrare。
  • django_session表时单表设计,且该表数据量持续增持(浏览器故意删掉sessionid且过期数据未删除)
  • 可每晚执行python3 manage.py clearsessions(该命令可删除已过期session数据)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值