了解了 Django 的運作之後,相信大家一步步對 Django 的操作更佳的熟悉,在前面我們介紹了 Model , View, Url,疑,那 MTV 當中的 T - Template 呢? 由於這系列文章為 API的實作,比較不會用到 Template 的功能,為了怕模糊焦點,就不多介紹 Template了。有興趣的朋友還是可以到 Django 官網進行學習。
目錄結構:
app
│── manage.py
├── app
│ ├── settings
│ ├── init.py
│ ├── urls.py
│ └── wsgi.py
├── products
│ ├── migrations
│ │ └── init.py
│ ├── init.py
│ ├── admin.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
透過 serializer 將資料進行序列化,與 Model 進行互動。
在 products 資料夾下新增 serializers.py 檔
from rest_framework import serializers
from models import Product
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ('id', 'name', 'uploader', 'status', 'description', 'view', 'price')
read_only_fields = ('id',)
修改 views.py
from models import Product
from serializers import ProductSerializer
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
新增 products 下之 urls.py 的路徑
from django.urls import path, include
from .views import *
from rest_framework.routers import DefaultRouter
from products import views
router = DefaultRouter()
router.register('', views.ProductViewSet)
app_name = 'products'
urlpatterns = [
path('', include(router.urls) ),
]
在app 資料夾下的 urls.py 新增路徑
path('products/', include('products.urls')),
重新啟動 DRF 應用
docker-compose up
輸入 ”http://127.0.0.1:9000/products/"
,可以看到我們實作的功能。
今天帶大家使用 DRF 實作第一個 API,不知道大家感覺如何呢?
雖然需要熟悉 DRF的方法需要一些時間,但是熟悉之後可以幫助我們很高效率的建立 API !