接續昨天的專案,創建好負責管理資料庫的 model 之後,接著我們今天要來建立 Serializers 以及 Views。
編寫 food 的 serializers, 負責處理 Food 的 資料溝通。
from rest_framework import serializers
from .models import Food
class FoodSerializer(serializers.ModelSerializer):
class Meta:
model = Food
fields = "__all__"
於 views.py 中 引入 Food 及 FoodSerializers,使用 Concrete View Classes 建立兩個 view 功能。
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 中新增相對應路徑
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 ~