Django
파이썬 장고 실무 심화 2주차 3_PUT, DELETE
끈끈
2023. 4. 19. 20:17
파이썬 장고 실무 심화 2주차 2_serializer, GET, POST
serializer를 사용하면 json 형태의 string으로 만들어 줌 GET articles > serializers.py: from rest_framework import serializers from articles.models import Article class ArticleSerializer(serializers.ModelSerializer): class Meta: model = Article
sw-ing.tistory.com
GET
articles > urls.py:
urlpatterns = [
path('<int:article_id>/', views.articleDetailAPI, name="article_view"),
]
articles > views.py:
from rest_framework.generics import get_object_or_404
@api_view(['GET', 'PUT', 'DELETE'])
def articleDetailAPI(request, article_id):
if request.method == 'GET':
article = get_object_or_404(Article, id=article_id)
serializer = ArticleSerializer(article)
return Response(serializer.data)
PUT
articles > views.py:
@api_view(['GET', 'PUT', 'DELETE'])
def articleDetailAPI(request, article_id):
if request.method == 'GET':
article = get_object_or_404(Article, id=article_id)
serializer = ArticleSerializer(article)
return Response(serializer.data)
elif request.method == 'PUT':
article = get_object_or_404(Article, id=article_id)
serializer = ArticleSerializer(article, data=request.data) # article을 request.data로 바꿔준다!!
if serializer.is_valid(): # POST 할 때와 똑같
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
DELETE
articles > views.py:
@api_view(['GET', 'PUT', 'DELETE'])
def articleDetailAPI(request, article_id):
if request.method == 'GET':
article = get_object_or_404(Article, id=article_id)
serializer = ArticleSerializer(article)
return Response(serializer.data)
elif request.method == 'PUT':
article = get_object_or_404(Article, id=article_id)
serializer = ArticleSerializer(article, data=request.data) # article을 request.data로 바꿔준다!!
if serializer.is_valid(): # POST 할 때와 똑같
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
elif request.method == 'DELETE':
article = get_object_or_404(Article, id=article_id)
article.delete()
return Response(status=status.HTTP_204_NO_CONTENT)