HttpResponse
导入方式 from django.http import HttpResponse
content:表示返回的内容
status_code:返回的 HTTP 响应状态码
content_type:指定返回数据的的 MIME 类型
Django 规定每个视图函数, 必须返回一个 HttpResponse( ) 对象
HttpResponse 可以从 django.http 中导入
HttpResponse 中有三个参数, 分别为 content(内容), content_type(内容类型), status_code(状态码)
HttpResponse 子类
Django 提供了一系列的HttpResponse的子类,可以快速设置状态码
导入方式 from django.http import HttpresponseNotFound
子类有:
HttpResponseRedirect 301
HttpResponsePermanentRedirect 302
HttpResponseNotModified 304
HttpResponseBadRequest 400
HttpResponseNotFound 404
HttpResponseForbidden 403
HttpResponseNotAllowed 405
HttpResponseGone 410
HttpResponseServerError 500
有时候, 在写视图的时候, 我们会返回 HttpResponse 的子类的对象, 而不是 HttpResponse( ) 对象
HttpResponse 的子类很多, 我们可以酌情使用
JsonRespones 类 from django.http import JsonRespones
帮助我们将 字典类型转换 为 json 类型并且还不用自己设置响应头中 contentType 字段
设置响应头 Content-Type 为 application/json
redirec 重定向 from django.shortcuts import redirec
redirect(想要跳转的路径) 可以和reverse 配合使用
redirect 最高级别父类 Respones
Cookie 同源网站将会携带同源cookie
定义 :
由服务端生成,跟随 响应 保存在客户端的一种存储形式,存储方式为 kye:value 方式 一般不储存敏感信息,可能会加密
特点:
Cookie 以键值对 Key-Value 形势进行信息的存储
Cookie 基于域名安全,不同域名的 Cookie 是不能互相访问的
设置:
key: cookie 中保存信息的名称
value: cookie 中保存信息时, 名称对应的值部分
max_age: cookie 中保存信息的有效期, 超过有效期, key-value 失效
其中 max_age 单位为秒, 默认为 None. 如果设置 None 值, 则关闭浏览器失效.
读取:
可以通过 HttpRequest 对象( request )的 COOKIES 属性来读取本次请求携带的 cookie 值
csrf 拒绝跨站攻击 跨站攻击 区别与cookie同源
Session 占用资源较大 但是跟安全
定义:会话控制方式,有服务端创建,保存服务端的数据存储形式,存储方式为 kye:value 方式 可以储存敏感信息,部分会加密
同时会产生一个sessionid / sessionlkey 存放在cookie中 通过响应 返回客户端
作用: 服务器上保存用户状态信息 以供前端页面访问
因为数据保存在服务器端, 所以可以保存敏感信息. 每次前端发送请求, 可以随时获取对应的信息. 保持会话状态
特点:依赖 cookies 可以存储敏感,重要信息 支持更多字节 session共享问题
Session 的常规操作
写入键值对
request.session['键'] = 值
读取数据
value = request.session.get('键',默认值)
删除 value值 的部分
request.seeion.clear()
清楚整条数据 key value
request.session.flush()
删除指定数据
del request.session['键‘ ]
设置有效期
request.session.set_extpiry(value值)
往 session 中存储或者读取数据使用的对象都是 request
存储时调用的格式是: ```request.session['key'] = 'value'```
获取 session 中的数据格式是: ```value = request.session['key']```
删除使用的格式: del request.session['key']
设置有效期使用的格式: ```request.session.set_expiry( value )```