이번에는 인스타 클론코딩을 진행 하면서 아래와 같이 초점을 둘 것 입니다.
✔️ 프론트엔드와 백엔드의 역할 구분이 어떻게 이루어지는지 공부
✔️ 유저 인증을 위해 JWT 를 이용한 로그인 구현
구현하면서, 문제가 되었던 점 그리고 그 문제를 해결하면서 알게 된 점을 작성해볼까 합니다.
여기서 구현한 리스트는 아래와 같습니다.
✔️ 사용자 모델을 개선
✔️ 게시물과 댓글 모델을 작성
✔️ 게시물 목록, 상세, 생성, 수정, 삭제 API 를 구현
그리고 실제로 잘 작동하는지 테스트 코드를 작성 한 후 테스트를 수행했습니다.
결과는 아래와 같습니다.
에러 1
TypeError: Query.paginate() takes 1 positional argument but 2 positional arguments (and 2 keyword-only)
이 문구를 보고 아무래도 페이지네이션을 구현하는 과정에서
paginate() 함수를 쓰는 방식에 문제가 있겠구나 생각했습니다.
알고보니,
Flask-SQLAlchemy 3.0 부터 paginate() 함수가 키워드로만 인자를 보낼 수 있도록 변경되어어
question_list = question_list.paginate(page, per_page=10) 대신
question_list = question_list.paginate(page=page, per_page=10) 처럼 사용해야 한다는 것이었습니다. ( 참고 링크 )
before
after
그랬더니, 성공적으로 테스트가 통과 되는 것을 확인 할 수 있었습니다!
에러 2
런타임 오류: 환경 변수 'APPLICATION_SETTINGS_FOR_TEST'가 설정되지 않은 구성입니다.
해당 오류에 대해서 구글링을 해봤지만, 알 수 없었습니다.
그래서 'APPLICATION_SETTINGS_FOR_TEST' 라는 키워드가 들어있는 .env 파일을 살펴보니까
단순 오타인걸로 확인 할 수 있었습니다.
'APPLICATION_SETTINGS_FOR_TEST' ❌
'APPLICATION_SETTINGS_FOR_TEXT' ⭕️
보통 이런경우에는 오타가 없는지 잘 확인해야겠습니다.. ㅎ
'flask' 카테고리의 다른 글
flask clone coding [3] (JWT 구현) (0) | 2022.11.15 |
---|---|
flask clone coding [2] (데이터 검증) (0) | 2022.11.13 |
CORS란? 그리고 해결방법은? / CSR vs SSR (0) | 2022.11.02 |
Flask - 테스트 코드 / 관리자 페이지 / 카테고리, 게시물 (0) | 2022.08.10 |
Flask - 회원가입/로그인/로그아웃 처리 [블로그 웹 애플리케이션 개발] (0) | 2022.07.27 |