栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

django DRF视图

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django DRF视图

1、安装与注册:
  • 安装:pip install djangorestframework
    • 注意:此处可能会出现网络代理的问题:ValueError: check_hostname requires server_hostname
    • 我也是搞了好久,开了VPN才下载安装成功
  • 注册:
    • INSTALLED_APPS = [
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
      
          'rest_framework',  # 注册rest_framework 模块
      ]

2、请求与响应
  • Request:REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。
    • request.data 返回解析后的请求体数据,与request.POST和request.FILES属性类似,但具有以下的特性:
      • 包含了解析之后的文件和非文件数据
      • 包含了对POST、PUT、PATCH请求方式解析后的数据
      • 利用了REST framework的parsers解析器,不仅支持表单类型数据,也支持JSON数据
    • request.query_params与request.GET相同,只是更改了名称
  • Response:REST framework提供了一个响应类Response,使用该类构造响应对象时,响应的具体数据内容会被转换(render渲染器)成符合前端需求的类型。
     
    • reat_framework.settings 中查找所有的drf默认配置项:
      • REST_frameWORK = {
            'DEFAULT_RENDERER_CLASSES': [  # 默认响应渲染类
                'rest_framework.renderers.JSONRenderer',  # json渲染器
                'rest_framework.renderers.TemplateHTMLRenderer',  # 浏览器API渲染器
            ],
            'DEFAULT_PARSER_CLASSES': [
                'rest_framework.parsers.JSONParser',
                'rest_framework.parsers.FormParser',
                'rest_framework.parsers.MultiPartParser',
            ],
        }
    • 返回构造:
      • def __init__(self, data=None, status=None,
                         template_name=None, headers=None,
                         exception=False, content_type=None):
      • data:只需传递python的内建类型数据即可,REST framework会使用renderer渲染器处理data 
      • status:状态码,默认为200;
      • template_name:模板名称,如果使用 HTMLRenderer 时需指明;
      • headers:用于存放响应头信息的字典;
      • content_type:响应数据的Content-Type,通常此参数无需传递,REST framework会根据前端所需类型数据来设置该参数。

3、视图类
  • 两个视图基类:
    • APIVIew:from rest_framework.views import APIView
      • APIView 与 View不同:
        • APIView:return Response() 参数如上
        • View: return HTTPResponse() 或 return JSonResponse()
    • GenericAPIView[通用视图类]
  • 五个视图扩展类:
    • cd
    • cd
    • cd
    • cd
    • cd
  • GenericAPIView的视图子类
  • cd视图集ViewSet
  • cf
  • vf
4、路由Routers
  • 使用:
  • 视图集中附加action的声明
  • 路由router形成URL的方式

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/321363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号