본문 바로가기

개발/Django, DRF

(9)
Django REST Framework(DRF) Serializer 이해하기, 장단점 Django REST Framework(DRF)는 Django 기반의 웹 API 개발을 위한 프레임워크입니다. 이 글에서는 DRF에서 중요한 역할을 하는 Serializer에 대해 알아보겠습니다. Serializer란? Serializer는 Django REST Framework에서 데이터의 직렬화(Serialization)와 역직렬화(Deserialization)를 담당하는 컴포넌트입니다. Django의 Model 인스턴스나 QuerySet을 JSON, XML 등의 컨텐츠 형태로 변환하거나, 반대로 클라이언트로부터 전달받은 데이터를 Model 인스턴스로 변환하는 작업을 수행합니다. Serializer는 데이터 유효성 검사와 같은 추가 기능도 제공합니다. Serializer 사용 방법 기본적으로 DRF에..
DRF-Spectacular을 활용한 Django Swagger 사용법과 예제 코드 가이드 더 정확한 문서화를 위해 DRF-spectacular관하여 찾아보고 쉽게 포스팅된 사용법이나 예시코드가 없어서 정리해서 올려본다. api는 view_set을 기준으로 설명합니다 1. 먼저 drf-spectacular를 설치해준다 pip install drf-spectacular 2. settings.py 설정 settings.py INSTALLED_APPS = [ ''''''~~~ "drf_spectacular", ] # docs SPECTACULAR_SETTINGS = { # General schema metadata. Refer to spec for valid inputs # https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0...
Django ORM 관련 꼭 봐야할 글 https://intrepidgeeks.com/tutorial/pyconkorea-django-orm-query-set-structure-and-principle-and-optimization-strategy-course-summary
[Django] DRF(장고 rest framework)와 REST API App application을 개발할때 우리는 REST API를 이용해 데이터를 교환한다. REST API란? 1. 일반적으로... 서버와 클라이언트사이 데이터 교환시 우리는 HTTP프로토콜을 이용하여 데이터를 교환한다. REST API(Representational State Transper)는 HTTP를 동사는 그대로 사용하면서 더 명시적으로 Client와 Server사이의 데이터 교환을 하기위해 고안된 디자인 Guide이다. (북유럽풍, 한국식, 일본식 이런 스타일!!!) 2. REST 구성 자원(RESOURCE) - URI 행위(Verb) - HTTP METHOD 표현(Representations) 3. REST 특징 1) Uniform (유니폼 인터페이스) Uniform Interface는 UR..
Django 주소 뒤에 슬래쉬 붙이거나 없애기 Django 프레임웍에서 APPEND_SLASH 옵션에 대한 사용법입니다. Django 에서는 urls.py 에 url 패턴을 정의하는데요. 리퀘스트가 들어오는 url 이 urls.py 에 정의되어 있지 않을 경우 주소 뒤에 슬래쉬를 붙여서 리다이렉트를 시킵니다. 예를 들어 /blog/list 로 접속을 했을 경우 urls.py 에 ('^blog/list/$', home_blog.list), 이렇게 blog/list/ 만 정의가 되어 있으므로 Django 는 요청된 url 이 없다고 판단하고 뒤에 슬래쉬를 붙여서 /blog/list/ 로 정의된 url 이 있는지 찾습니다. 위의 경우는 blog/list/ 가 정의되어 있으므로 blog/list/ 로 리다이렉트가 되어서 성공적으로 접속이 됩니다. 이게 문제..
[Django] Error: That port is already in use. - 해결 방법 이럴 경우 port 8000과 관련된 모든 프로세스를 죽이고 다시 실행시키면 된다. Mac에서는 터미널에서 "sudo lsof -t -i tcp:8000 | xargs kill -9"를 입력하면 된다.
Django ORM model 정리 CharField 문자열을 저장하는 필드로 max_length로 최대 길이를 제한할 수 있다. 더 큰 문자열을 다룰 경우 TextField를 사용한다. DateField datetime.date를 저장하는 필드이다. auto_now=True를 인자로 추가하면 Model.save로 저장할 때마다 현재 시간으로 갱신된다(QuerySet.update로는 갱신되지 않는다). updated_at 필드에 주로 사용한다. auto_now_add=True를 인자로 추가하면 처음 객체가 생성될 때 현재 시간으로 설정된다. 주로 created_at 필드에 사용한다. 위 두 인자를 사용하면 editable=False, blank=True로 설정된다. DateTimeField datetime을 저장하는 필드로 인자의 사용방법..
Django 템플릿에서 newline 을 br 태그로 변경 newline 캐릭터를 무조건 br 태그로 변경 {{item.content | linebreaksbr}} newline 캐릭터 다음에 빈 라인이 하나 더 올 경우 p 태그로 감싸기 {{item.content | linebreaksbr}}
Django 마이그레이션 자주 쓰는 명령어 python manage.py makemigrations python manage.py migrate python manage.py migrate "앱 이름" ---------------------------------------------- **** 마이그레이션 잘 안될때 **** python manage.py migrate --fake "앱 이름" python manage.py migrate --fake "앱 이름" zero