DJango项目构造响应对象 设置session cookie
Posted oscarli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DJango项目构造响应对象 设置session cookie相关的知识,希望对你有一定的参考价值。
响应信息:起始行,响应头,响应体
视图接收请求并处理后,必须返回HttpResponse对象或子对象
HttpResponse(content=响应体,content_type=相应数据类型,status=状态码) # 默认200 状态码
JsonResponse 相应信息返回json字符串
return JsonResponse({"city":"beijing"}) # 不需要手动设置 响应头 content-type=application/json 和转换成json字符串
redirect
return redirect(‘/index.html‘) 配置reverse使用 尽量不要使用绝对路径
设置cookie
HttpResponse.set_cookie(cookie名 ,value = cookie值 ,max_age = cookie有效期 单位秒)
request.COOKIES.get(‘cookie名‘) # 获取cookie 字典类型
设置session cookie是存储在本地浏览器,而session存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。
广义 session机制 : 多次HTTP请求之间的关系 会话机制 状态数据 如:登陆状态
狭义 seesion数据 : 记录的状态数据 例如:登陆后记录的user_id 等等
Django默认存放在数据库中
本地缓存需要修改 session_engine = Django.contrib.sessions.backends.cache
引用redis
1、安装拓展 pip install django-redis
2、配置 setting.py
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } } SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default"
操作session
request.session[‘key‘] = value
request.session.get[‘key‘]
request.session.clear() 清空所有值
request.session.flush() 清空整条 记录
del request.session[‘key‘] 删除 键值
request.session.set_expiry(value) 0 -->临时会话 , 整数 单位秒 , None 两周默认值
session_cookie_age 秒为单位 全局默认值
以上是关于DJango项目构造响应对象 设置session cookie的主要内容,如果未能解决你的问题,请参考以下文章