iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
Software Development

使用Django Rest Framework, Docker, Docker Compose 製作後端服務應用系列 第 27

[Day27] - Django-REST-Framework API 期末專案實作 (二)

接續昨天的專案,創建好負責管理資料庫的 model 之後,接著我們今天要來建立 Serializers 以及 Views。

編寫 serializers.py

編寫 food 的 serializers, 負責處理 Food 的 資料溝通。

from rest_framework import serializers
from .models import Food

class FoodSerializer(serializers.ModelSerializer):

    class Meta:
        model = Food
        fields = "__all__"

編寫 views.py

於 views.py 中 引入 Food 及 FoodSerializers,使用 Concrete View Classes 建立兩個 view 功能。

  • FoodListCreateAPIView
  • FoodDetailAPIview

FoodListCreateAPIView 提供 List , Create 的功能,可以列出 Food 物件以及新增 Food 物件
FoodDetailAPIview 提供 Retrieve, Update, Destroy 功能,可以對於 Food 進行資訊的查詢,修改及刪除。

from rest_framework import generics
from .models import Food
from .serializers import FoodSerializer

class FoodListCreateAPIView(generics.ListCreateAPIView):
    queryset = Food.objects.all()
    serializer_class = FoodSerializer

class FoodDetailAPIview(generics.RetrieveUpdateDestroyAPIView):
    queryset = FOod.objects.all()
    serializer_class = FoodSerializer

修改 urls.py

接著我們在 urls.py 中新增相對應路徑

from django.urls import path
from .views import FoodDetailAPIview, FoodListCreateAPIView
urlpatterns = [
    path("food/", FoodListCreateAPIView.as_view(), name="food-list"),
    path("food/<int:pk>/", FoodDetailAPIview.as_view(), name="food-detail")
]

如此我們可以完成一個可以進行瀏覽,個別查詢,修改,即刪除的菜單系統 API
接下來我們繼續持續完善這個 API ~


上一篇
[Day26] - Django-REST-Framework API 期末專案實作 (一)
下一篇
[Day28] - Django-REST-Framework API 期末專案實作 (三)
系列文
使用Django Rest Framework, Docker, Docker Compose 製作後端服務應用30

尚未有邦友留言

立即登入留言