[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 ~


<<:  Day25-实作

>>:  追求JS小姊姊系列 Day25 -- 工具人、姐妹的存活原理:宣告变数的有效区域

Day04 - 学习 Vue CLI package.json 设定档

今天回到大神的教学 重新认识 Vue.js | Kuro Hsu 3-3 Vue CLI 环境设定与...

Day-7 带着童年的好朋友任天堂红白机、重新在 HDMI 电视上发光吧!

写了好几天的事前准备、我想大家应该都腻了。终於、准备到了一定程度、可以进入本文了。这篇文章主要的目的...

#02 No-code 之旅 — Next.js 简介

大家星期五快乐!TGIF~ 今天想跟大家分享 Next.js 这个 React 框架 (官网写 &q...

Ruby on Rails 模组(Module)

如果我有一个小猫类别,我想要这个小猫类别有飞行功能,你会怎麽做? 直接写一个有飞行功能的小鸟类别,然...

Mikrotik RouterOS从入门到实战系列-Mikrotik入门第四课

Mikrotik RouterOS从入门到实战系列-Mikrotik入门第四课 VPN详解与实战应用...