视图在接收请求并处理后,必须返回HttpResponse对象或子对象。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。

文章目录

  • 响应报文组成
    • 1. HttpResponse
    • 2. HttpResponse子类
    • 3. JsonResponse
    • 4. redirect重定向

响应报文组成

HTTP/1.1 200 OK\r\n
Server: Tengine\r\n
Content-Type: text/html; charset=UTF-8\r\n
Transfer-Encoding: chunked\r\n
Connection: keep-alive\r\n
Date: Fri, 23 Nov 2018 02:01:05 GMT\r\n
\r\n(响应头信息后面还有一个单独的’\r\n’不能省略)
<!DOCTYPE html><html lang=“en”> …</html>

1. HttpResponse

可以使用django.http.HttpResponse来构造响应对象。

HttpResponse(content=响应体, status=状态码, content_type=响应体数据类型,)

也可通过HttpResponse对象属性来设置响应体、状态码:

  • content:表示返回的内容。
  • status_code:返回的HTTP响应状态码。

响应头可以直接将HttpResponse对象当做字典进行响应头键值对的设置:

response = HttpResponse()
response['Itcast'] = 'Python'  # 自定义响应头Itcast, 值为Python

示例:

from django.http import HttpResponsedef demo_view(request):return HttpResponse('itcast python', status=400)或者response = HttpResponse('itcast python')response.status_code = 400response['Itcast'] = 'Python'return response

2. HttpResponse子类

Django提供了一系列HttpResponse的子类,可以快速设置状态码

HttpResponseRedirect 301
HttpResponsePermanentRedirect 302
HttpResponseNotModified 304
HttpResponseBadRequest 400
HttpResponseNotFound 404
HttpResponseForbidden 403
HttpResponseNotAllowed 405
HttpResponseGone 410
HttpResponseServerError 500

3. JsonResponse

若要返回json数据,可以使用JsonResponse来构造响应对象,作用:

  • 帮助我们将数据转换为json字符串
  • 设置响应头Content-Type为 application/json
from django.http import JsonResponsedef demo_view(request):return JsonResponse({'city': 'beijing', 'subject': 'python'})

4. redirect重定向

from django.shortcuts import redirectdef demo_view(request):return redirect('/index.html')

响应Response相关推荐

  1. Http响应Response详解

    1. HttpServletResponse概述: 在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响 ...

  2. 【07 响应(response) 学习笔记】

    响应response 笔记记录 一.响应 1. 常见状态码 2. 字节流响应消息&乱码问题解决 3. 字符流响应消息 4. 响应图片 5. 设置缓存 6. 定时刷新 7. 请求重定向 8. 文 ...

  3. Servlet深入服务之响应response

    HttpServletResponse与HttpServletRequest Web服务器收到哭护短的http请求时,会针对每一次请求,分别创建一个用于代表请求的request对象和代表响应的resp ...

  4. php response响应,9. 响应 (Response)

    ## 为什么单独创建一个Response? 跟`为什么要单独创建一个Request` 一样. 原因: 可以管理 如: 在 `swoole` 不应该用 `echo`, 因为 `swoole` 是 `cl ...

  5. 抓包修改服务器响应Response的数据

    前言 有时候我们出于一些原因,需要修改服务器响应给用户浏览器的数据.比如:我们传递给服务器我们的用户名和密码,服务器发送给我们一段文本,其中包含你的一个角色权限比如Status,这个Status限制了 ...

  6. HTTP响应 Response对象

    Response对象 一.Response对象功能 1. 设置响应行 2. 设置状态码:setStatus(int sc) 3. 设置响应头: 4.重定向便捷方法 5.request转发 6.重定向 ...

  7. 下载文件时,响应Response设置,浏览器弹出下载框

    在你潇洒的写下InputStream转到response的时候,需要先设置下Response,否则浏览器并不会弹出下载框 预处理 "Content-Type", "app ...

  8. 响应response.setHeader方法

    1.一秒刷新页面一次 response.setHeader("refresh","1"); 2.五秒跳到其他页面 response.setHeader(&quo ...

  9. asp.net core 系列之Performance的 Response compression(响应压缩)

    本文,帮助了解响应压缩的一些知识及用法(大部分翻译于官网,英文水平有限,不准确之处,欢迎指正). 什么是响应压缩?响应压缩简单的说就是为了减少网络带宽,而把返回的响应压缩,使之体积缩小,从而加快响应的 ...

最新文章

  1. 『ExtJS』01 009. ExtJS 4 方法重载
  2. 一名优秀的初创企业员工怎么做好工作计划
  3. 收集经常使用的.net开源项目
  4. LeetCode 795. 区间子数组个数
  5. pert计算公式期望值_PERT和三点估算技术
  6. JavaScript 数组 array.at() 获取数组中最后一个元素
  7. 【August】百度运维+测试面试
  8. python tkinter的基础用法
  9. python加载机制_Python 模块的加载顺序
  10. C语言SetConsoleCursorPosition()函数来定位光标位置
  11. LINUX:Contos7.0 / 7.2 LAMP+R 下载安装Php篇
  12. 在java中如何把字符串转换成时间格式?
  13. 学计算机的高等数学,高等数学-计算机类
  14. 隐藏手机号码中间四位程序python_Excel快速将手机号码中间四位数字隐藏
  15. 批量语音转文字python
  16. 判断入射满射c语言编码,数学上可以分三类函数包括() 答案:单射双射满射...
  17. 工单管理解决方案 | 可高度扩展,可量身定制,助力无纸化流程办公
  18. vr全景三维产品交互展示设计
  19. 【工程光学】几何光学基本定律成像概念
  20. VS2017无法调试Unity

热门文章

  1. python 卡方分布函数_卡方检验2-python代码实现
  2. 在vue项目中使用favicon.ico
  3. docker镜像导入失败,先收藏了
  4. windows安装MongoDB,Robo 3T
  5. Android 组件化开源 app -开眼短视频(OpenEyes)
  6. cartographer中分支定界法理解——为什么能保证上界
  7. JS之解构( Destructuring)
  8. 【bzoj 4833】[Lydsy1704月赛]最小公倍佩尔数
  9. C语言——整型整除,浮点数整除
  10. 计算机科学与计算机技术!