视图在接收请求并处理后,必须返回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. Vertica数据库
  2. Longest Common Prefix
  3. python求助神器_python三大神器
  4. 基础IO(文件接口、安装内核源码超详细步骤图解、静态库与动态库)
  5. 七牛切片视频php,音视频切片(HLS)
  6. 将相同值的行内容进行合并操作--Sql2005
  7. Qt总结之八:绘制仪表盘
  8. java中add和addall区别,java中list的add与addall方法区别
  9. fedora20配置静态ip
  10. win10下乌龟git安装和使用
  11. 华为 荣耀 等手机解锁BootLoader
  12. c语言判断二次函数,知识:六法搞定二次函数解析式的确定
  13. LaTex图表中英文标题,中英文图表目录
  14. 22牛客多校1 J.Serval and Essay (启发式合并)
  15. 玉米社:竞价推广创意如何优化,几个创意撰写技巧分享给你!
  16. route命令添加永久路由
  17. ElasticSearch-查询语法(结构化查询)
  18. python生成热图_用Python生成热图
  19. 合肥市服务器软件维护,一卡通系统维保计划书.doc
  20. ActiveX控件打包成Cab置于网页中自动下载安装 (收藏未实践测试)

热门文章

  1. mysqladmin命令的用法
  2. 一点点矩阵理论知识:如何区分理解子空间的和与并?
  3. 初识python导学案_高中数学 第三章 三角恒等变换 3_2_2 半角的正弦、余弦和正切学案 新人教b版必修4...
  4. MyBatis批量插入(sqlserver BULK INSERT)
  5. 字符流、字节流、缓冲流、序列化流
  6. 为什么大家都说别去外包?外包公司到底能不能去?
  7. CSDN写文章Markdown个人笔记
  8. CVR预估模型ESMM
  9. 用bat执行ps1脚本
  10. ref使用之react / react hook