Django-rest-framework 建成DRF,能夠幫助咱們快速構建出 django的rest full 風格的api接口。
其源碼容易理解,因此咱們能夠很方便的使用。python
安裝django
pip install djangorestframework pip install django==2.1.1
settings.py 配置api
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中的數據取出來,組裝成咱們須要的樣子。ui
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,在這裏先不作深刻講解url
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 綁定到路由上spa
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')) # 登陸接口, ]
最後,將服務完整運行起來,在訪問相關接口,就能夠看到效果了rest