본문 바로가기

restframework5

Django 코드 품질 향상시키기(with black, isort, flake8, pre-commit, makefile) Django pycharm black 세팅하기 0. black Black은 Python 코드 포맷터로, 코드를 일관되고 깔끔하게 유지하는 데 사용됩니다. Black은 "The uncompromising code formatter"라는 슬로건을 가지고 있으며, 개발자가 스타일 가이드에 대해 신경 쓸 필요 없이 자동으로 코드를 깔끔하게 정리해 줍니다. Black은 PEP 8-Python의 공식 스타일 가이드를 기반으로 하되, 몇 가지 스타일 선택을 추가로 제공합니다. Black의 주요 특징: 결정적 포맷팅: 동일한 코드에 대해 항상 같은 결과를 제공합니다. 코드의 가독성 증진: 긴 줄을 적절하게 분할하고, 여러 스타일 요소를 자동으로 조정하여 코드의 가독성을 향상시킵니다. 손쉬운 통합: Git 훅, 편집기 .. 2024. 4. 22.
8. Renderers Renderers TemplateResponse 인스턴스를 클라이언트로 반환하려면 먼저 인스턴스를 렌더링해야 합니다. 렌더링 프로세스는 템플릿과 컨텍스트를 중간으로 표현하여 클라이언트에 제공할 수 있는 최종 byte stream으로 변환합니다. REST 프레임워크에는 다양한 media types으로 응답을 반환할 수 있는 여러 기본 렌더러 클래스가 포함되어 있습니다. 또한 고유한 사용자 정의 렌더러를 정의할 수 있으므로 고유한 media type을 유연하게 설계할 수 있습니다. 렌더러 결정 방법 view에 대한 유효한 렌더러 집합은 항상 클래스 목록으로 정의됩니다. view를 입력하려면 DRF가 들어오는 요청에 대해 콘텐츠 협상을 수행하고 요청을 충족하는 가장 적합한 렌더러를 결정합니다. 컨텐츠 협상의 .. 2021. 7. 7.
7. Parsers Parser 시스템 상호 작용 웹 서비스는 단순한 형식보다 복잡한 데이터를 전송하기 때문에 form-encoded보다 더 구조화된 form을 사용합니다. REST 프레임워크에는 다양한 미디어 유형의 요청을 수락할 수 있는 기본 파서 클래스가 다수 포함되어 있습니다. 또한 사용자 정의 구문 분석기를 정의할 수 있어 API에서 허용하는 media types를 유연하게 설계할 수 있습니다. parser 결정하는 방법 view에 유효한 parser 셋은 항상 클래스 목록으로 정의됩니다. request.data에 액세스하면 DRF는 들어오는 요청의 Content-Type 헤더를 검사하고 요청내용을 파싱할 파서를 결정합니다. 참고 : 클라이언트 응용 프로그램을 개발할 때는 HTTP request로 데이터를 전송할 .. 2021. 6. 29.
6. Routers Routers 리소스 라우팅을 사용하면 지정된 리소스 저장 컨트롤러에 대한 모든 공통 경로를 신속하게 선언할 수 있습니다. 인덱스에 대해 별도의 경로를 선언하는 대신, 한줄의 코드로 이를 선언합니다. Rails와 같은 일부 웹 프레임워크는 수신 요청을 처리하는 로직에 응용 프로그램의 URL을 매핑하는 방법을 자동으로 결정하는 기능을 제공합니다. REST 프레임워크는 Django에 대한 자동 URL 라우팅 지원을 추가하며, view 로직을 URL 집합에 연결하는 간단하고 빠르고 일관된 방법을 제공합니다. Usage router를 사용하는 간단한 예제를 보겠습니다. from rest_framework import routers router = routers.SimpleRouter() router.regist.. 2021. 6. 28.
5. ViewSets 라우팅이 요청에 사용할 컨트롤러를 결정하면, 컨트롤러는 요청을 이해하고 적절한 출력을 생성할 책임이 있습니다. DRF를 사용하면 VeiwSet라고 하는 단일 클래스의 연관된 viewset에 대한 논리를 결합할 수 있습니다. 다른 프레임워크에서는 개념적으로 유사한 것으로는 'Resources' 또는 'Controllers'를 찾을 수도 있습니다. ViewSet 클래스는 단순히 .get() 또는 .post()와 같은 메서드 핸들러를 제공하지 않고 .list() 및 .create()과 같은 작업을 제공하는 클래스 기반 View의 한 유형입니다. ViewSet의 메서드 핸들러는 as_view() 메서드를 사용하여 View를 완료하는 시점에만 해당 작업에 바인딩 됩니다. 일반적으로, urlconf의 viewSet.. 2021. 6. 26.