본문 바로가기
Django

50일차 TIL

by 승현0604 2022. 11. 13.

오늘 한일

 

1. drf 시리얼라이즈를 통해 게시물 작성, 수정, 삭제, 기능 구현하는거 복습하기

 

2주전에 시리얼라즈에 대한 이해도가 많이부족하다고 생각했고 django심화강의를 좀더 깊이 공부를 해보고자 시리얼라이즈부터 강의를 다시 듣고 요약을 해보았다. 

 

그리고 공부의 방법을 바꾼게 checklist는 너무 자세해서 어영부영보고넘어가는게 있었는데 checklist를 완주한다는 목적으로 다가니 공부가 더 잘되는것같았다. 그래서 오늘 복습한내용에 대한 TIL를 Checklist를 통해서 작성을 해보겠다. 

 

첫번째로는 DRF로 프로젝트를 세팅하는법

DRF는 django Rest framework의 줄임말로 Restful API서버를 쉽게 구축을 시킬 수 있도록 도와주는 오픈소스라이브러리라고 생각할 수 있다.  

 자세한 설명은 다음과 같은데 이를 사용할 때 개발자에게 여러이점이 오는데 가독성이 좋고 범용성이 좋다고 한다. 오늘 강의를 자세히들으면서 이 DRF프로젝트를 세팅하는버에 대해서는 완벽히 익힌듯 했다. 그리고 아직은 완벽하진 않지만 공식문서를 통해서 세팅하는법도 어느정도 익히고있다. 

Home - Django REST framework (django-rest-framework.org)

 

Home - Django REST framework

 

www.django-rest-framework.org

 

2. 시리얼라이즈의 의미와 사용

내가오늘 복습하는부분에서 가장 중요한부분이다. 단순히 얘기하자면 model에 내가 설정해놓은 객체들을 DATASTREAM화를 시켜서 json언어로 직렬화를 시키나는 것이다.  직렬화를 시키면 객체 자체를 영속적으로 보관할때 사용하는데 파일형태로 저장되어 네트워크를 통해 전송이 가능하기 때문이다. 

 

djangorestframework에서는 모델을 직렬화를 시켜서 내보내줘야만 하는데  그 부분에 대한 기능은 다음과 같다. 

 

그리고 views에서 

모델에있는 오브젝트들을  시리얼라이즈를 시켜서 직렬화로 데이터에 보관을 해주고 is_valid를 통해서 검증을 맞춰주면 get기능과 POST기능이 활용이 되는 로직이다(이걸...이제이해했다 ㅜㅜ)

 

3.swagger를 사용할 수 있다. 

 

먼저 swagger이란게 뭘까? 그것은 API를 위한 프레임워크인데 API들이 가지고 있는 스펙들을 명세, 관리할 수 있는 프로젝트라고 할 수 있다. (사용자에게 API사용방법을 알려주는 문서이기도하다)

drf-yasg - Yet another Swagger generator — drf-yasg 1.20.1 documentation

 

drf-yasg - Yet another Swagger generator — drf-yasg 1.20.1 documentation

Since the schema does not usually change during the lifetime of the django process, there is out of the box support for caching the schema view in-memory, with some sane defaults: caching is enabled by the cache_page decorator, using the default Django cac

drf-yasg.readthedocs.io

내가 사용하는 swagger은 drf전용으로 사용하는 swagger인데 이부분도 역시 적용을 하는방법을 현재 잘 알고있는 상태이다.

 

4. 클래스형 뷰를 사용할 수 있다. 

하나의 URL에 하나의 CLASS를 사용한다. def를 쓸수있엇을 텐데 굳이 클래스를 사용하는 이유는 뭘까? (솔직히 아직은 완전히 이해를 하지못해서 그부분은 천천히 이해를해보겠다)

일단 구분하기는 쉬워보였다. 하나의 경로에 하나의 class문을 사용을 한다면 가독성이 좋을것같다는 생각도 들기 떄문이다. 오늘 프로젝트에서는 게시물 작성 및 보기 페이지와 게시물 수정, 삭제, 디테일뷰 부분 이 두가지로 나뉘어져있다. 경로도 두가지이다.

게시물 작성 기능
게시물 삭제, 수정, 디테일뷰 기능부분이다.

 

앞으로의 다짐 : 내일은 sns기능을 다시해볼것이고 그 기능에 대해서 성급하게 하지말고 천천히 이해하면서 알아가는게 내 목표이다. 어렵고 시간도 걸리겠지만 대충훓고 지나가는것보다는 나을것이다

파이썬 알고리즘 문제를 풀어볼예정이다. 

 

'Django' 카테고리의 다른 글

52일차 TIL  (0) 2022.11.15
51일차 TIL  (1) 2022.11.14
47일차 프로젝트 발표 and 시연영상  (0) 2022.11.09
46일차  (0) 2022.11.09
45일차  (0) 2022.11.09