본문 바로가기
728x90
반응형

source-code/Django34

CORS 에러 해결하기 React로 개발한 Frontend에서 DRF로 개발한 Blog Backend로 API 요청을 보내려 시도했다. 흔한 async await 요청. 혹시 몰라 Postman을 통해 직접 요청도 보내봤다. DRF Pagination을 적용했어서 next와 previous가 있긴 한데, 어쨋든 results 속에 우리가 원하는 데이터가 담겨있는 모습! 으악! 자세히 읽어보면 blocked by CORS policy → CORS 정책에 의해 막혔단다. 그럼 CORS 정책이 뭔디? 보안상의 이유로 브라우저는 교차 출처 HTTP 요청을 제한한다! 즉 한 API를 사용하는 웹 애플리케이션은 자신의 출처와 동일한 리소스만 불러올 수 있으며, 다른 출처의 리소스를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응.. 2021. 4. 5.
Django REST Framework _ User Custom 웹사이트의 활력소! User 기능! 물론 지금도 이를 사용하고 있지만... 아무것도 Custom 되지 않은 밋밋한 User에 불과하다! 따라서 DRF에서도 User Custom을 적용할 예정. 2021/01/07 - [Django] - Blogs App _ 인증 기능 with 사용자 지정 Blogs App _ 인증 기능 with 사용자 지정 인증 기능을 개발할 때 django의 User 테이블을 통해 만들었다. 즉 이미 django에서 정해준 값만을 입력할 수 있었다!! 당연히 항상 이런 상황만 생기지는 않는다. 그렇기 때문에 이번에는 직접 User 모 23life.tistory.com 이전 Django User Custom과 유사한 부분이 많다! 우선 DRF User Custom의 관전 포인트는... .. 2021. 2. 17.
Django REST Framework _ Postman 사용하기 DRF는 기본적으로 REST API를 따른다. 그렇기 때문에 각 URL 요청에 따라 처리하는 자원이 달라진다. 여기서 문제. 모든 기능이 구현되지 않은 개발 환경에서는? 이를 확인하기가 쉽지 않다! 모든 URL 요청을 브라우저에서 일일이 입력해야 하고... GET 이외의 HTTP method는 확인해볼 수도 없다! 이러한 불편함을 해결하기 위해... Postman이란 녀석을 사용해볼 예정. Postman이란? 개발한 API를 테스트하고, 테스트 결과를 공유해 API 개발 생산성을 높여주는 플랫폼! 우선 공식 홈페이지에서 다운로드를 진행하자. www.postman.com/downloads/ Download Postman | Try Postman for Free Try Postman for free! Joi.. 2021. 2. 16.
Django REST Framework _ 회원가입 구현하기 현재 우리는 api-auth란 URL요청을 통해 rest_framework.urls로 로그인과 로그아웃을 진행한다! urls.py 바로 요 녀석! 그런데 얘만으로는 createsuperuser로 생성한 User밖에 로그인/로그아웃이 되지 않는다! 따라서 일반 사용자들도 회원가입과 로그인/로그아웃을 이용할 수 있도록 만들 예정! www.django-rest-framework.org/api-guide/authentication/#custom-authentication Authentication - Django REST framework www.django-rest-framework.org 오늘도 오늘도 공식문서의 도움을 받는다. 우선 회원가입을 진행할 텐데... 지금까지는 그저 username과 passwo.. 2021. 2. 15.
Djagno REST Framework _ Pagination 사용하기 모든 요청을 한 페이지에 담는다면? 보기도 힘들뿐더러 시간도 오래 걸릴 테다. 따라서 페이지를 나눠 요청을 보내게 되는데... 우리의 친절한 DRF는 이러한 pagination 기능을 제공한다! www.django-rest-framework.org/api-guide/pagination/ Pagination - Django REST framework pagination.py Django provides a few classes that help you manage paginated data – that is, data that’s split across several pages, with “Previous/Next” links. — Django documentation REST framework inclu.. 2021. 2. 15.
Django REST Framework _ ViewSets & Router 이용하기 REST framework는 ViewSets라는 추상 클래스를 제공한다. 이 녀석을 통해 개발자는 API의 상호작용이나 상태별 모델링에 집중할 수 있고, URL구조는 기본 관례에 의해 자동적으로 설정된다...고 한다! (무슨 소리인지 원) 그래서 ViewSets이 뭔디? → View와 거의 유사! 다만 GET과 PUT은 지원하지 않고, READ와 UPDATE 메서드를 지원한다. ViewSets는 메서드가 실제 뷰로 구체화될 때 이를 연결해주기만 하며, 복잡한 URL의 경우 Router 클래스를 사용해 처리한다고 한다. 무슨 소리인지 모르겠으니... 지금껏 만들 view들을 살펴보며 ViewSets을 이용해 refactoring 해볼 예정! www.django-rest-framework.org/tutori.. 2021. 2. 10.
단위 테스트를 이용한 홈페이지 테스트 Django 애플리케이션에서 단위 테스트를 진행해보자! 그런데 그 전에, 단위 테스트는 뭐고 기능 테스트는 뭘까? 기능 테스트는 사용자 관점에서 애플리케이션 외부를 테스트하는 것이고, 단위 테스트는 프로그래머 관점에서 그 내부를 테스트한다는 것이다. 책에서 다루는 TDD 접근법은 요 양쪽을 모두 적용한다! 즉 작업 순서는... 1. 기능 테스트를 작성해 사용자 관점의 새로운 기능성을 정의. 2. 기능 테스트가 실패하고 나면 어떻게 코드를 작성해서 통과할지를 연구. (이 시점에서 하나 또는 그 이상의 단위 테스트를 이용해 어떻게 코드가 동작해야하는지 정의 한다) 3. 단위 테스트가 실패하고 나면 단위 테스트를 통과할 수 있을 정도의 최소한의 코드만 작성. (기능 테스트가 완전해질 때까지 과정 2와 3을 반.. 2021. 2. 10.
debug-tool-bar 이용하기 django 관련 블로그를 읽다 보면 (특히 실무, 큰 프로젝트에서) ORM관련 이슈가 많이 발생함을 볼 수 있었다. 이를 개발 단계에서 알 수 있는 방법은 없을까? 우리의 친절한 django가 만들어준 django-debut-toolbar를 이용해보자. 우선 pip install로 설치! settings.py의 INSTALLED_APP에 debug_toolbar를 추가해주자. 다음은 프로젝트 전체 urls.py에 관련 url을 추가! 기존에 적었던 urlpatterns 밑에 그냥 추가해주면 된다. 요 settings는? django.conf 에서 import! django-debug-toolbar는 주로 middleware에서 활동. 따라서 settings.py의 MIDDLEWARE에도 다음과 같이 추.. 2021. 2. 9.
PNU Quiz App _ django로 퀴즈 구현하기3 심심한 페이지를 벗어나기 위해(?) js 소스를 뿌려준다. 우리가 원하는 기능은 2개! 1. result 페이지를 띄워주기 전 로딩 화면을 띄워준다. 2. 유저의 점수와 전체 유저의 점수 평균을 비교해주는 그래프를 띄워준다. 출동! 1. result 페이지를 띄워주기 전 로딩 화면을 띄워준다. 우리가 원하는 화면. 요 로딩바를 3초가량 보여준 후 진짜 result 페이지의 내용이 뜨면 된다! js로 로딩 화면을 만드는 데는 여러 가지 방법이 있는데... 여기서는 setTimeout 함수를 이용해 2.5초가 지나면 result 페이지 내용이 뜨도록 만들 예정. result.html 로딩바 이미지와 글귀를 담은 div를 loading으로, result 페이지 내용을 담은 div를 result_content로.. 2021. 2. 1.
728x90
반응형