1、drf初步使用

  • 安装:pip install djangorestframework

  • 注册:在settings.py中

    • INSTALLED_APPS = [
          "django.contrib.staticfiles",
          "app01.apps.App01Config",
          "rest_framework"
      ]
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15

      ## 1、路由显示

      #### 1-方法一:函数方式

      ```python
      # urls.py
      from django.urls import path
      from app01 import views

      urlpatterns = [
      # path("admin/", admin.site.urls),
      path("auth/", views.auth),
      path("login/", views.login),
      ]
1
2
3
4
5
6
from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(['GET']) # 需要使用装饰器
def login(request):
return Response({"status": True, "message": "Hello World!"})

2-方法二:类方式 (后续主要使用)

1
2
3
4
# urls.py
urlpatterns = [
path("info/", views.InfoView.as_view()),
]
1
2
3
4
5
6
from rest_framework.response import Response
from rest_framework.views import APIView

class InfoView(APIView):
def get(self, request):
return Response({"status": True, "message": "Hello view"})

2、FBV(函数视图)和CBV(类视图)

1
2
3
4
5
6
7
8
# urls.py
from django.urls import path
from app01 import views

urlpatterns = [
path("auth/", views.auth), # FBV
path("info/", views.InfoView.as_view()), # CBV
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# views.py
from django.http import JsonResponse
from django.views import View

class InfoView(View):

def get(self, request,*args, **kwargs):
pass
def post(self, request,*args, **kwargs):
pass
def put(self, request,*args, **kwargs):
pass
def delete(self, request,*args, **kwargs):
pass

在使用drf时,会遇见ContenType错误,解决方法:

1
2
3
4
# 在settings.py加入下面语句
REST_FRAMEWORK={
"UNAUTHENTICATED_USER": None,
}