본문 바로가기
TIL(Daily)/Django

Thu/27/Oct/22 Django심화-3

by Hawie 2022. 10. 28.

오늘은 장고 심화 과정 중에서도 모델시리얼라이저 활용 하기,포스맨 API 확인해보기 에 대해 공부했다.

처음 들었을 때는 무슨 소리인지 이해가 되지 않아서 힘들었다.

 

장고복습 과 다른 여러 글들,팀원들에 도움으로  이해는 것이 가능해졌다!

물론 아직 초반이라 그런걸지도 모르지만 확실 하다보니 이해 할 수 있는 부분이 많아 진거같다. 

 

그리고 처음이 조금 복잡해 보여서 그렇지 배워 보니 앞으로 전에 했던 방법보다 

훨씬 간결하고 코딩 할때  더 많은 데이터 처리가 가능 해보인다.

이해할수 있는 부분이 많아 질 수록 배우는 재미가있다.

 

오늘은 배운코드 리뷰해보겠다.

 

 

 

 

#models.py

from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length =100)
    content = models.TextField(null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now =True)
    
    def __str__(self):
        return str(self.title)
    
    -----------------------------------------------------------------------       
   
   
 #serialilzers.py# 오늘 배운 내용중 가장 중요한 코드#
 
 
from rest_framework import serializers
from articles.models import Article

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = "__all__"
        
        
-----------------------------------------------------------------------        
        
        
 #views.py
 
 
 from rest_framework import status
from rest_framework.response import Response
from rest_framework.generics import get_object_or_404
from rest_framework.decorators import api_view
from articles.models import Article
from articles.serializers import ArticleSerializer

# Create your views here.
@api_view(['GET', 'POST'])
def articleAPI(request):
    if request.method == "GET":
        articles = Article.objects.all()
        serializer = ArticleSerializer(articles,many=True)
        return Response(serializer.data)
    elif request.method == "POST":
        serializer = ArticleSerializer(data = request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            print(serializer.errors)
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        
        
@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)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
    elif request.method == "DELETE":
        article = get_object_or_404(Article, id = article_id)
        article.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)

 

 

 

 

 

 

댓글