1. 程式人生 > >DRF 框架總結 - DRF 工程 搭建

DRF 框架總結 - DRF 工程 搭建

環境安裝與配置

DRF 是以 Django 擴充套件應用的方式提供的,所以我們可以直接利用已有的 Django 環境而無需重新建立。(若沒有 Django 環境,需要先建立環境安裝 Django)

安裝DRF

pip install djangorestframework

新增rest_framework應用

我們利用在Django框架學習中建立的demo工程,在settings.pyINSTALLED_APPS中新增’rest_framework’。

INSTALLED_APPS = [
    ...
    'rest_framework',
]

接下來就可以使用DRF進行開發了。


見識 DRF 的魅力

建立序列化器

建立一個BookInfoSerializer用於序列化與反序列化。

class BookInfoSerializer(serializers.ModelSerializer):
    """圖書資料序列化器"""
    class Meta:
        model = BookInfo
        fields = '__all__'

  • meta 指明該序列化器處理的資料欄位從模型類 BookInfo 參考生成
  • fields 指明該序列化器包含模型類中的哪些欄位,__all__
    指明包含所有欄位

編寫檢視

from rest_framework.viewsets import ModelViewSet
from .serializers import BookInfoSerializer
from .models import BookInfo

class BookInfoViewSet(ModelViewSet):
    queryset = BookInfo.objects.all()
    serializer_class = BookInfoSerializer
  • queryset 指明該檢視集在查詢資料時使用的查詢集
  • serializer_class 指明該檢視在進行序列化或反序列時使用的序列化器

定義路由

在booktest應用的urls.py中定義路由資訊。

from . import views
from rest_framework.routers import DefaultRouter

urlpatterns = [
    ...
]

router = DefaultRouter()  # 可以處理檢視的路由器
router.register(r'books', views.BookInfoViewSet)  # 向路由器中註冊檢視集

urlpatterns += router.urls  # 將路由器中的所以路由資訊追到到django的路由列表中

除了在 urlpatterns 中新增路由,也可以使用 DefaultRouter 建立路由器,將檢視註冊進去

執行測試

運行當前程式(與執行 Django 一樣)

python manage.py runserver

在瀏覽器中輸入網址 127.0.0.1:8000,可以看到 DRF 提供的 API web 瀏覽介面,可以訪問介面,可以傳送不同的請求進行增刪改查。