🙄
【Django】Pythonで作るRest API【13API View】
【13API View】
YouTube: https://youtu.be/wCqCzR7Md7s
今回は「API View」を使用して、
「Post」のビューを作成していくのですが、
「API View」にはクラスベースビューに継承して作成する方法と、
ファンクションベースビューにデコレーターを設定して作成する方法があります。
今回は、ファンクションベースビューにデコレーターを設定して作成する方法で
実装を行います。
myapp/posts/views.py
from django.shortcuts import render
from django.http import HttpResponse
from rest_framework import viewsets
from .models import Post
from .serializers import PostSerializer
from rest_framework.decorators import api_view
from rest_framework.response import Response
# Create your views here.
def helloWorld(request):
# return HttpResponse('Hello World')
hello = 'hello'
return render(request, 'posts/index.html', {})
@api_view(['GET'])
def getAllPosts(request):
posts = Post.objects.all()
serializer = PostSerializer(posts, many=True)
return Response(serializer.data)
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
myapp/posts/url.py
from django.urls import path, include
from .views import helloWorld, PostViewSet, getAllPosts
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'posts', PostViewSet, basename='posts')
urlpatterns = [
path('hello/', helloWorld, name='hello'),
path('', getAllPosts, name='getAllPosts'),
path('', include(router.urls))
]
ビューとURLの設定ができましたら、
ローカルサーバーを起動して表示の確認を行います。
Discussion