Django 개발
-
[Django] Boto3 사용하여 AWS DynamoDB query하기Django 개발 2023. 3. 13. 20:11
python 3.8.13 / boto3 1.17 / django 3.1 버전에서 작성된 글입니다. from boto3 import Session boto3_session = Session(aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY, region_name=AWS_REGION_NAME) boto3를 사용하여 DynamoDB에 query하는 방법은 client를 사용하는 방법과 resouce를 사용하는 방법 두 가지가 있다. 먼저 두 가지의 차이점은 client가 좀 더 row level, resource가 좀 더 high level이라고 하는데 recource가 client를 wrapping한 고수준 인터페..
-
[Django] N:M 관계에서 order_by 사용시 duplicate 오류Django 개발 2022. 11. 29. 14:57
N:M 관계를 가진 여러 테이블을 거쳐 정렬을 해야할 때, queryset 결과가 중복되는 이슈를 발견했다. 해당 문제는 distinct()로는 해결하기 어렵기 때문에 다른 접근 방식이 필요하다. 예시 코드 예를 들어 후기에 연결된 주문서의 제품 중 후기 이벤트가 진행중이라면 상위에 노출시키고 싶어서 아래 코드처럼 쿼리를 짤 경우 총 개수는 일치하지만 같은 후기가 여러 개 반환된다. Review.objects.all().order_by('order__products__review_events') 이 때, 해결 방법은 annotate를 사용하여 Max로 묶어주면 된다. Review.objects.all().annotate(review_event=Max('order__products__review_event..
-
[Docker] No such file or directory: 'docker' 오류 해결Django 개발 2022. 4. 25. 18:38
새로운 라이브러리를 추가하기 위해 docker에 실행중인 container와 image를 날리고 다시 받아오는 과정에서 오류가 생겼다. FileNotFoundError: [Errno 2] No such file or directory: 'docker' 오류를 서치해보니 volume을 제거해주지 않아서 꼬인 문제였다. 해결방법은 생각보다 간단하다. 터미널을 켜서 docker-compose.yml이 위치한 곳으로 이동하여 아래 두 문장을 입력해준다. docker-compose down -v -> 볼륨 삭제 docker-compose up --build -> 재빌드 이렇게 하면 새로운 라이브러리들이 열심히 설치되는 화면을 볼 수 있다. (220426 추가) 서버 실행 문제는 해결되었지만 테스트 코드와 디버그가..
-
[Django] DRF jwt 인증방식을 이용한 로그인, 회원가입 구현하기Django 개발 2022. 3. 28. 01:35
JWT(Json Web Token)란? JWT란 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰을 의미합니다. JWT는 클라이언트에서 Http 리퀘스트 헤더에 JSON 토큰을 넣어 보내면 서버는 헤더에 포함되어 있는 JWT 정보를 통해 인증합니다. Django Built-in Token과 JWT 차이점 Django : DRF Token based Authentication VS JSON Web Token I am building a real world application where users will access the app primarily from Android, iOS devices as well as Desktops. From my elementary research, I have ..