본문 바로가기

기술 기록/Python,Django9

DRF api 서버 만들기 진행 기록 1. 깃허브 레파지토리 링크 https://github.com/dpcalfola/fola_api_server 2. 진행 기록 Django settings.py core_app (개발중) Custom user model (계획) Custom superuser model (계획) Custom admin page for custom user model (계획) Custom django command (계획) wait for db to be available (계획) docker-compose docker-compose 와 Dockerfile 연동 CI github action을 이용한 CI 환경 구축 github secrets 을 이용하여 Dockerhub 로그인 steps: Django test flake8.. 2022. 9. 30.
DRF stu.d.a A0) DRF + TDD + CI 0. 정말 오랜만의 블로그 포스팅 한동안 새 글이 없었음에도 일일 방문자가 꽤 많아 기분이 좋았다. 1. 근래에는 Django REST framework를 이용한 API 서버 개발을 공부하고 있다. 코드: https://github.com/dpcalfola/study_django_rest_framework 2. 구조 * 코드는 TDD(Test Driven Development)에 입각하여 작성 * Docker-compose를 사용하여 모든 컨테이너를 통합, 제어하여 빌드 * CI(Continus Integration) 구현 - Github Action을 통해 매 git push 때마다 빌드, Test Code, Lint 등을 체크 3. 문제 해결 일화 - env 숨김 파일을 Github Action에 적.. 2022. 8. 29.
파이썬PS) 백준 14729 칠무해 - 최대힙 사용 파이썬PS) 백준 14729 칠무해 - 최대힙 사용 문제 링크 : https://www.acmicpc.net/problem/14729 제출 코드: https://www.acmicpc.net/source/45496454 14729번: 칠무해 조(Joe)는 중앙대학교 교수이고, 논리회로 설계 과목을 담당하고 있다. 그는 수업을 하면서 7명의 학생을 제외한 나머지 학생들에게 좋은 학점을 주겠다고 약속을 하였다. Joe 교수님을 돕기 위해 www.acmicpc.net 0. 파이썬으로 풀 경우 단순하게 모든 입력값을 리스트에 append 하고 정렬하여 7개만 출력하는 방법으로도 제한시간내에 통과된 제출이 있었다. 그러나 학생 수의 입력 범위가 최대 10,000,000으로 매우 크고 출력 값은 최솟값 7개만 필요했.. 2022. 7. 4.
error, 파이참버그) ValueError: invalid literal for int() with base 10: '' / 파이참 인풋 버그 error, 파이참, PyCharm) ValueError: invalid literal for int() with base 10: '' / 파이참 인풋 버그 0. 요약 : PyCharm 2022.1.1 의 알려진 버그 PY-54238 - 콘솔에서 인풋 값을 입력받을 때 두 번째 인풋이 강제로 empty string로 변환되는 현상 해결방법: Run > Run/Debug Configurations > Execution > Emulate terminal in output console > 체크박스 체크 (2022/06/02 추가 내용) 정식 릴리즈된 PyCharm 2022.1.2 업데이트로 버그 픽스됨 1. 버그 내용 콘솔에서 인풋 값을 키보드로 직접 입력받을 때 두 번째 인풋이 강제로 empty strin.. 2022. 5. 30.
Django ) 데코레이터를 이용한 유저 검증 관련글 2022.05.16 - [프로젝트/Django - How Dimt?] - Django poj.c B16) Security logic - 403 forbidden - 28일차 views.py 에서 모델 객체 변경을 요청하는 유저의 권한을 체크하는 3가지 코드 1. CBV에서 'GET' 요청과 'POST' 요청을 처리하는 함수를 오버라이드 GET' 또는 'POST' 요청을 처리하는 함수가 콜 되었을 때 - 로그인이 되어있지 않거나 - 객체의 작성자와 request에 담겨있는 로그인 user가 같지 않을 경우 403 forbidden를 raise CBV에서 REST 요청이 들어왔을 때 내가 원하는 로직을 추가하는 방법. 매우 중요!! 2. Decorator를 이용한 검증 (기존 오버라이드 방식의 코드는.. 2022. 5. 16.
파이썬PS) 백준 6603 로또. 백트래킹 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 파이썬 PS) 백준 6603 로또. 백트래킹 알고리즘 - dfs를 이용한 백트래킹 1. 코드 1 import sys 2 3 while True: 4 nums = list(map(int, sys.stdin.readline().split())) 5 if nums[0] == 0: 6 break 7 8 nums.pop(0) 9 V = 6 10 stack = [] 11 12 13 def dfs(.. 2022. 4. 12.
파이썬PS) 백준 7568 덩치 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 아이디어: 문제에 큰 힌트가 숨겨져 있다. '만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다' 사람 한 명씩 전체 리스트를 순회하면서 자신보다 큰 사람이 아무도 없으면 1등이고, 자신보다 큰 사람이 한 명씩 증가할 때마다 등수가 +1 씩 증가한다. N의 최댓값이 50 이므로 시간 복잡도 O^2의 이중 for 문을 이용해도 큰 부담이 없다. 몸무게와 .. 2022. 3. 29.