Django-rest-framework(一)簡單入門使用


簡單的使用

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')) # 登錄接口,
    ]
    
  • 最后,將服務完整運行起來,在訪問相關接口,就可以看到效果了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM