본문 바로가기

Django45

DRF 테스트코드 개발 도전기 Test Code를 작성하는 이유 먼저 테스트 코드에 대해서 설명하기 전에 Jacob Kaplan-Moss라는 분이 테스트가 없는 코드는 잘못 설계된 코드입니다. 라는 말을 했습니다. 또한 테스트 코드를 작성하면 좋은 점은 잘 동작하고, 깔끔한 코드를 얻기위해서, 또한 시간을 단축해 줍니다. 저도 마찬가지로 테스트 코드를 작성하기 전에 매일.. Postman으로 테스트를 했는데 이 과정은 매우 번거로울 뿐 아니라 매우 비효율 적이라고 생각을 했습니다. 그래서 테스트코드를 작성하면 Postman으로 1개의 api를 테스트 할 시간에 수십개~수백개의 테스트 케이스를 테스트 할 수 있다고 생각 해서 Test 코드를 개발 했습니다. DRF Test 코드 작성하기 setUp 작성하기 DRF에서는 다양한 test를.. 2021. 12. 17.
14-Authentication 인증은 들어오는 request를 request보낸 사용자 또는 서명된 토큰과 같은 일련의 식별 자격 증명과 연결하는 메커니즘입니다. 그런 다음 권한 및 제한 정책은 해당 자격 증명을 사용하여 요청을 허용해야 하는지 여부를 결정할 수 있습니다. REST 프레임워크는 기본적으로 여러 인증 체계를 제공하며 사용자 지정 체계를 구현할 수도 있습니다. 인증은 항상 view의 맨 처음, 권한 및 throttling 검사가 발생하기 전, 그리고 다른 코드가 계속 진행되도록 허용되기 전에 실행됩니다. request.user 속성은 일반적으로 contrib.auth 패키지의 User 클래스 인스턴스로 설정됩니다. request.auth 속성은 추가 인증 정보에 사용됩니다. 예를 들어 request에 서명한 인증 토큰을 .. 2021. 9. 26.
13-Testing 테스트가 없는 코드는 잘못 설계된 코드입니다. - Jacob Kaplan-Moss REST 프레임워크에는 Django의 기존 테스트 프레임워크를 확장하고 API요청 지원을 개선하는 몇 가지 support 클래스가 포함되어 있습니다. APIRequestFactory Django의 RequestFactory 클래스를 확장합니다. Creating test requests APIRequestFactory 클래스는 Django의 표준 RequestFactory 클래스와 거의 동일한 API를 지원합니다. 이는 표준 .get(), .post(), .put(), .patch(), .delete(), .head() 및 .options()메서드를 모두 사용할 수 있음을 의미합니다. from rest_framework.te.. 2021. 8. 24.
12-Validators Validators DRF에서 유효성 검사를 처리하는 대부분의 경우 단순히 기본 필드 유효성 검사에 의존하거나 serialzier 또는 필드 클래스에 대한 명시적 유효성 검사 메서드를 작성합니다. 그러나 때로는 유효성 검사 로직을 재사용 가능한 구성 요소에 배치하여 코드베이스 전체에서 쉽게 재사용할 수 있도록 하고 싶을 때가 있습니다. 이것은 벨리데이터 함수와 벨리데이터 클래스를 사용하여 해결할 수 있습니다. Validation in REST framework DRF에서 serializer의 벨리데이션은 Django의 ModelForm 클래스에서 벨리데이션이 작동하는 방식과 약간 다르게 처리됩니다. ModelForm을 사용하면 벨리데이션 폼에서 부분적(partial)으로 실행되고 모델 인스턴스에서 부분적.. 2021. 8. 18.
Django Channel Tutorial Part 1 django project 만들기 장고를 실행하기 전에 먼저 가상환경을 세팅해준 후 mysite라는 이름을 가진 프로젝트를 만들겠습니다. 1. python3 -m venv myvenv 2. pip isntall django 3. django-admin startproject mysite . 그러면 다음과 같은 project가 만들어 진 것을 확인할 수 있습니다. Chat app 만들기 다음은 chat이라는 app을 만들겠습니다. 명령어는 다음과 같습니다. python manage.py startapp chat 그럼 다음과 같은 디렉토리 구조가 나옵니다. 여기서 저희는 chat이라는 app에서 views.py와 init.py만 남겨두고 나머지는 다 삭제하겠습니다. 왜냐하면 이것으로만 작업을 진행하기 때문입.. 2021. 7. 28.
Django Channels란 Django Channels를 알기전 websocket 알아가기 웹 소켓은 HTML5의 표준 기술로, 사용자의 브라우저와 서버 사이의 동적인 양방향 연결 채널을 구성합니다. Websocket API를 통해 서버로 메시지를 보내고, 요청 없이 응답을 받아오는 것이 가능합니다. 현재 API는 W3C에서 관장하고 있으며 프로톸로은 IETF에서 관리하고 있습니다. 웹 소켓은 별도의 포트를 사용하지 않고 HTTP와 같은 80번 포트를 사용하고 있는데, 이 때문에 클라이언트인 웹브라우저 뿐만 아니라 웹 서버도 기능을 지원하고 있어야만 합니다. Django Channels Channels는 웹소켓, 채팅 프로토콜, IoT 프로토콜 등을 처리하기 위해 Django를 HTTP이상으로 확장하는 프로젝트입니다. ASGI라는.. 2021. 7. 24.