簡單的使用
Django-rest-framework 建成DRF,可以幫助我們快速構建出 django的rest full 風格的api接口。
其源碼容易理解,所以我們可以很方便的使用。
-
安裝
pip install djangorestframework pip install django==2.1.1
-
settings.py 配置
INSTALLED_APPS = ( ... 'rest_framework', ) # DRF 自己的配置參數, 可以暫時不用配置 REST_FRAMEWORK = { # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access for unauthenticated users. }
-
准備serializers.py文件, 這里直接使用admin的User,所以不需要准備models, serializers 的作用相當於序列化數據,將queryset中的數據取出來,組裝成我們需要的樣子。
from django.contrib.auth.models import User, Group from rest_framework import serializers class UserSerializer(serializers.ModelSerializer): class Meta: model = User # 要序列的model fields = ('url', 'username', 'email', 'groups') # 數據字段 class GroupSerializer(serializers.ModelSerializer): class Meta: model = Group # 要序列的model fields = ('url', 'name') # 數據字段
-
准備views.py 文件, 這里使用ModelViewSet,也可以使用其他viewset,在這里先不做深入講解
from django.contrib.auth.models import User, Group from rest_framework import viewsets from .serializers import UserSerializer, GroupSerializer class UserViewSet(viewsets.ModelViewSet): """ 用戶接口 """ queryset = User.objects.all().order_by('-date_joined') # 指定queryset serializer_class = UserSerializer # 指定queryset對應的serializers class GroupViewSet(viewsets.ModelViewSet): """ 用戶組接口 """ queryset = Group.objects.all() # 指定queryset serializer_class = GroupSerializer # 指定queryset對應的serializers
-
修改url.py 文件,獎view 綁定到路由上
from django.urls import include, path from rest_framework import routers from tutorial.quickstart import views # 使用router注冊view,綁定url映射關系, # 關於什么時候使用router,什么時候不能使用,后面獎路由的時候在深入了解吧 router = routers.DefaultRouter() router.register(r'users', views.UserViewSet) # 綁定view到users路由下 router.register(r'groups', views.GroupViewSet) urlpatterns = [ path('', include(router.urls)), path('api-auth/', include('rest_framework.urls', namespace='rest_framework')) # 登錄接口, ]
-
最后,將服務完整運行起來,在訪問相關接口,就可以看到效果了