Django-rest-framework的用法
这篇文章的摘要
提供使用Django REST Framework的方法说明。
安装Django REST Framework
安装django-rest-framework。
// django-rest-frameworkのインストール
$ pip3 install djangorestframework
Django REST Framework的用法
Django REST Framework的配置。
INSTALLED_APPS = [
'rest_framework', # 追加
'api' # 追加
]
from django.contrib import admin
from django.urls import path, include # 追加
urlpatterns = [
path('api-auth/', include('rest_framework.urls')), # 追加
path('api/', include('api.urls')), # 追加
]
创建模型(API)。
from django.db import models
from django.utils import timezone # timezoneのインポート
class Food(models.Model):
def __str__(self):
return self.name
name = models.CharField(verbose_name='名前', null=True, blank=True, max_length=64)
created_at = models.DateTimeField(verbose_name='作成日時', default=timezone.now)
updated_at = models.DateTimeField(verbose_name='編集日時', blank=True, null=True)
创建序列化器(API)。
from rest_framework import serializers
from .models import Food
class FoodSerializer(serializers.ModelSerializer):
created_at = serializers.DateTimeField(format="%Y-%m-%d %H:%M", read_only=True)
updated_at = serializers.DateTimeField(format="%Y-%m-%d %H:%M", read_only=True)
class Meta:
model = Food
fields = '__all__'
通过使用视图集创建API来创建views。
from rest_framework import viewsets
from .models import Food
from .serializers import FoodSerializer
class FoodViewSet(viewsets.ModelViewSet):
queryset = Food.objects.all()
serializer_class = FoodSerializer
创建URL(API)
from django.urls import path, include
from rest_framework import routers
from .views import FoodViewSet
foodRouter = routers.DefaultRouter()
foodRouter.register('food', FoodViewSet)
urlpatterns = [
path('', include(foodRouter.urls)),
]