服务器响应
1、Django服务器接收到客户端发送过来的请求后,会将提交上来的数据封装成httpRequest对象传给视图函数。那么视图处理完相关逻辑后,也需要返回一个响应给浏览器。而这个响应必须返回HttpResponseBase或者他的子类的对象,而HttpResponse就是HttpResponseBase中用得最多的子类对象
⑴在django.http模块中定义了HttpResponse对象的API
⑵HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建
⑶在每一个视图函数中必须返回一个HttpResponseBase对象,当然也可以是HttpResponseBase的子类的对象(如HttpResponse对象、JsonResponse对象等)
2、因为HttpResponse对象和JsonResponse对象在Django中使用得比较常见,所以主要介绍这两种
3、HttpResponse对象下面有很多属性和方法,这些属性和方法可以用来对我们的视图函数返回的HttpResponse对象进行一些设置
HttpResponse对象
1、作用:给浏览器返回数据(这里指返回一个HttpResponse对象)
2、HttpRequest对象是由Django创建的,HttpResponse对象是由程序员创建
3、用法:
⑴不用模板,直接返回数据。语句示例:return HttpResponse("Sunck is a good man")
⑵调用模板,使用render方法
4、render(request, templateName[, context])
⑴作用:结合数据和模板,返回一个完整的HTML页面
⑵参数:
①request:请求体对象
②templateName:模板路径
③context:传递给需要渲染在模板上的数据
HttpResponse对象常用属性
属性 | 说明 |
content | 返回的内容 |
status_code | 返回状态码 |
content_type | 返回数据MIME类型,默认为text/html |
response['X-Access-Token'] = 'xxxx' | 设置请求头(其实我感觉更应该叫响应头,因为它是在响应的header中) |
charset | 编码的字符集。 如果没指定,将会从content_type中解析出来 |
content_type
content_type说明
⑴用于设置返回数据的MIME类型,默认为text/html
⑵浏览器会根据这个属性,来显示数据,如果是text/html,那么就会解析这个字符串如果text/plain,那么就会显示一个纯文本
⑶常用的content-type如下:
属性名 | 说明 |
text/html | 默认的,html文件 |
text/plain |