栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django11:cookies和session

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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数据)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号