• drf安装与APIView初步分析


    drf安装

      1. pip install djangorestframework

      2. 在settings文件中注册app : INSTALLED_APPS = [..., 'rest_framework']

    使用

    视图层

    from rest_framework.views import APIView
    from rest_framework.response import Response
    class BookAPI(APIView): # 继承rest_framework的APIView # rest_framework会对request进行二次封装 def get(self, request, *args, **kwargs): print(request.query_params) # 通过?拼接的数据会封装到query_params中 return Response('ok') def post(self, request, *args, **kwargs): print(request.data) # 而通过body携带过来的数据会被封装到data中 return Response('ok')

    路由层

    from django.conf.urls import url
    from . import views
    
    urlpatterns = [
        url(r'^books/$', views.BooksAPI.as_view()),
    ]

    APIView初步分析

    通过drf写接口是我们视图层继承的类变成了APIView,而APIView又继承了django的View,

    显然APIView就是对View的进一步封装,所以下面还是从as_view和dispatch方法来分析

    rest_framework.views文件中

    APIView类

    as_view方法

    dispatch方法

    initialize_request方法

    Request类

    __init__

    query_params 与 data

    APIView类

    initial方法

    总结:

    1. 对于as_view方法, 只帮我们新加一个注释中间件的方法

    2. 对于dispatch方法, 帮我们完成了一下四件事

      ① 重新封装了request,并且把原本的request封装到_request中

      ② 把?拼接的数据封装到query_params中, body携带的数据封装到data中

      ③ 添加了三大认证组件

      ④ 重新封装返回的response

  • 相关阅读:
    MathType输入框怎么调整
    几何画板中去除画出的线段的教程
    MathType怎么编辑半开半闭区间
    几何画板给月牙图形填充颜色的技巧
    MathType调整矩阵分隔线粗细的方法
    帮你深入理解OAuth2.0协议
    phalapi
    Spring松耦合实例
    让前端工程师糟心的正则表达式到底是什么?
    composer安装
  • 原文地址:https://www.cnblogs.com/hesujian/p/11370704.html
Copyright © 2020-2023  润新知