专栏首页数据云团Django-DRF | HttpResponse 响应

Django-DRF | HttpResponse 响应

Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

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

一、HttpResponse

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

from django.http import HttpResponse

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

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

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

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

response = HttpResponse()
# 自定义响应头 Itcast,值为 Happy New Year
response['Itcast'] = 'Happy New Year'
from django.http import HttpResponse

def index(request):
  return HttpResponse('Happy New Year', status=200)

二、HttpResponse 子类

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

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

三、JsonResponse

如果要返回 json 数据,可以使用 JsonResponse 来构造响应对象

  • 将数据转换为 json 字符串
  • 设置响应头 Content-Type 为 application/json
from django.http import JsonResponse

def index(request):
  return JsonResponse({'year': '2020', 'month': '02'})

本文分享自微信公众号 - 数据云团(SmartData),作者:云团小楠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Django源码学习-13-HttpResponse

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(...

    小团子
  • Django源码学习-20-QueryDict

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(...

    小团子
  • Django进阶篇 Rest framework (八)

    理解 django rest framework,需要先理解面向对象。子类继承父类属性和方法,而在基类中往往以定义抽象接口的形式,强制使子类重写抽象接口。不过抽...

    小团子
  • 使用SCCM和Viewfinity进行提权实验

    如今越来越多的公司开始限制用户以本地管理员的身份来运行软件,随之带来的问题是,如何允许用户执行某些管理行为,例如安装已批准的软件。市场上有一些工具旨在解决这个问...

    FB客服
  • Distance calculation

    V-REP可以以一种非常灵活的方式测量两个可测量实体之间的最小距离。这个计算是精确的最小距离计算。距离计算模块只测量距离;但是它不会直接对它们做出反应。下图展示...

    六四零
  • Affiliate实战记录之一:CPI、CPA、CPM...名词解释

    (Cost Per Mille,或者Cost Per Thousand;Cost Per Impressions) 每千人成本,按展示次数收费

    sunsky
  • 只需2步,轻松搞定iPhone与Win10通讯录同步

    在iPhone和Mac之间共享联系人很容易,因为这两个设备都是在苹果的云中同步的。但你知道你也可以与Windows10电脑共享iPhone联系人吗?下面开始讲解...

    程序员小助手
  • 22.opengl高级-实例化

    绘制有共同特征,或者按照一定规则变化的图形阵列,如果挨个按照普通流程来绘制:绑定VAO、绑定纹理、设置uniform-->调用glDrawArrays(GL_T...

    用户1068165
  • 将markdown编译为html

    IT人写技术文档,例如我自己写博客,用的最多的就是 markdown. 但是在浏览器中看到的这些博客都是以 html 的格式展示在人们的面前的. 所以一个自然...

    ACM算法日常
  • CentOS下配置SVN环境

    开发环境是Linux,协同开发下,每次测试文件都要传服务器,然后测试的时候需要调试,所以用到了SVN环境,部署之后方便很多,这里记下笔记。

    似水的流年

扫码关注云+社区

领取腾讯云代金券