/leo_blog

Primary LanguagePython

Django CRUD Practice Project

  • CRUD 기반 연습용 프로젝트 입니다.


CRUD

개념

  • 데이터의 생성(Create), 조회(Read), 업데이트(Update), 삭제(Delete)를 말합니다.
  • 서비스의 대부분의 기능에 적용되는 개념이기 때문에 확실히 공부하면 좋습니다!


method structure

  • Create
def new_post(request):
    """
    "post"method로 들어온 request data를 받아서 객체를 생성합니다.
    ex) Post.objects.create(
                title=request.POST['title']
                )
    """
    return render()
  • Read
def post_detail(request, pk):
    """
    pk는 post 객체의 고유의 id값입니다.
    이 pk를 통해서 객체를 가져옵니다.
    ex) post = get_object_or_404(Post, id=pk)
    """
    return render()
  • Update
def post_update(request, pk):
        """
    "post"method로 들어온 request data를 받아서 객체를 업데이트 합니다.
    ex) Post.objects.get(id = pk)
        ...
        post.save()  # 수정된 사항을 저장합니다.        
    """
    return render()
  • Delete
def post_delete(request, pk):
    """
    post = Post.objects.get(id=pk)
    post.delete()  # post 객체를 삭제합니다.
    """
    return render()


보충설명

get_object_or_404

get_object_or_404(MODEL_NAME, pk=id)
  • pk가 id에 해당하는 객체를 가지고 옵니다.
  • 만약에 해당객체가 없다면 404 에러 페이지를 띄웁니다.

path converter

path('blog/<int:id>', blogpost.views.detail, name="detail")
  • 여러 객체들을 다루는, 계층적인 url을 자동생성할때 편리합니다.
  • 함수에게 넘기는 인자로 몇 번 객체를 다룰 것인지에 대한 정보입니다.
  • why use? 우리가 각 블로그 게시글들마다 path를 하나씩 추가하면 너무 불편하기 때문! 만약 1000개의 detail 페이지가 있다고 하면 우리가 일일이 1000개의 path를 만들어주면 너무 비효율적이기 때문입니다.

POST vs GET

  • POST : 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 데이터를 전송하는 방식
  • GET : 어떠한 정보를 가져와서 조회를 하기 위한 방식
  • 장단점은 검색을 한번 해보세용!!