环境准备
python==3.6
安装drf
安装drf,会自动安装djangopip install djangorestframework==3.12.4
版本要求:djangorestframework==3.12.4
Python (3.5, 3.6, 3.7, 3.8, 3.9)
Django (2.2, 3.0, 3.1)
版本要求:djangorestframework==3.11.2
Python (3.5, 3.6, 3.7, 3.8)
Django (1.11, 2.0, 2.1, 2.2, 3.0)
创建django项目
django-admin startproject drf
运行django项目
配置django
在settings.py中添加配置
INSTALLED_APPS = [
...
# 注册rest_framework(drf)
'rest_framework',
]
# drf相关配置以后编写在这里
REST_FRAMEWORK = {
}
创建django app
URL和视图
# drf/urls.py
from django.urls import path
from app01 import views
urlpatterns = [
path('users/', views.UserView.as_view()),
]
# app01/views.py
from rest_framework.views import APIView
from rest_framework.response import Response
class UserView(APIView):
def get(self, request, *args, **kwargs):
return Response({"code": 1000, "data": "xxx"})
def post(self, request, *args, **kwargs):
return Response({"code": 1000, "data": "xxx"})
DRF CBV原理
drf中重写了 as_view 和dispatch方法,其实就是在原来django的功能基础上添加了一些功能,例如:
- as_view,免除了csrf 验证,一般前后端分离不会使用csrf token认证(后期会使用jwt认证)。
- dispatch,内部添加了 版本处理、认证、权限、访问频率限制等诸多功能(后期逐一讲解)。