环境准备

python==3.6

安装drf
安装drf,会自动安装django
pip install djangorestframework==3.12.4

  1. 版本要求:djangorestframework==3.12.4
  2. Python (3.5, 3.6, 3.7, 3.8, 3.9)
  3. Django (2.2, 3.0, 3.1)
  4. 版本要求:djangorestframework==3.11.2
  5. Python (3.5, 3.6, 3.7, 3.8)
  6. Django (1.11, 2.0, 2.1, 2.2, 3.0)

image.png

创建django项目

django-admin startproject drf
image.png
运行django项目
image.png

配置django

在settings.py中添加配置

  1. INSTALLED_APPS = [
  2. ...
  3. # 注册rest_framework(drf)
  4. 'rest_framework',
  5. ]
  6. # drf相关配置以后编写在这里
  7. REST_FRAMEWORK = {
  8. }

创建django app

django-admin startapp app01
image.png

URL和视图

  1. # drf/urls.py
  2. from django.urls import path
  3. from app01 import views
  4. urlpatterns = [
  5. path('users/', views.UserView.as_view()),
  6. ]
  1. # app01/views.py
  2. from rest_framework.views import APIView
  3. from rest_framework.response import Response
  4. class UserView(APIView):
  5. def get(self, request, *args, **kwargs):
  6. return Response({"code": 1000, "data": "xxx"})
  7. def post(self, request, *args, **kwargs):
  8. return Response({"code": 1000, "data": "xxx"})

这就是drf尊贵的浏览器界面
image.png
Postman访问
image.png

DRF CBV原理

drf中重写了 as_view 和dispatch方法,其实就是在原来django的功能基础上添加了一些功能,例如:

  • as_view,免除了csrf 验证,一般前后端分离不会使用csrf token认证(后期会使用jwt认证)。
  • dispatch,内部添加了 版本处理、认证、权限、访问频率限制等诸多功能(后期逐一讲解)。

image-20210819141447988.png