【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 秒为单位 全局默认值  

相关推荐