TIL40 | Westargram 마무리
2021. 11. 1. 10:29ㆍ프로그래밍/웹관련
반응형
오늘 할 일 TODO
RESTful API 관련 영상 찾아보기 (노마드코드, 엘리)
파이썬 패키지 관리
- requirements.txt, requirements-dev.txt
- [Python] requirements.txt로 패키지 관리하기
logging 설정하는 방법 알아놓기
프로젝트 시작 전 정리 할 것
- Git commit & PR convention
- parameter & table naming
- README.md 타이틀 작성
- logging 설정
- Modeling할 때 PK (unique=True)
- fake library 사용법
🎠️ Django Design Pattern
URLconf (Router)
Main urls.py
app으로 라우팅 해주는 역할
Sub user/urls.py
target 값을 지정
View class 소스 분석
notion 자료 보기
Model
abstract model
- 반복적인 시간 기록 요소를 작성해야하는 경우, 추상화된 class를 만들고 상속을 받아서 구현한다.
class TimeStampModel(models.Model):
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
class Meta:
abstract = True
class User(TimeStampModel):
...
logging
Django SQL query가 어떻게 이뤄지는지 알고 싶을 때 로깅하는 방법
(로컬 개발환경에서는 거의 필수적으로 사용한다.)
서버 실행시 코드 실행 때마다 쿼리가 찍히는 설정
settings.py에 LOGGING 설정 추가
파일로 저장하는 방법
settings.py에 LOGGING 설정에 파일관련 설정 추가
🎠️ Mission 1-6
settings.py
⭐️ CORS_ALLOW_METHODS
의 OPSTIONS
역할
- preflight 개념 설명 할 수 있어야함. (기술면접)
Modeling
Key 컬럼에는
unique=True
옵션을 반드시 줘야한다.복합 Key인 경우에는
unique together
제약조건을 설정하면 된다.
회원가입
정규 표현식
: 정규표현식을 사용할 경우, 자주 사용되는 경우가 아니라면 compile()
을 사용하는 것보다 match()
를 사용하는 것을 공식문서에서 추천하고 있다.
(compile()
은 한번 컴파일하고 여러번 사용할 때 쓰는 것.)
정규 표현식 리팩토링
import re
from django.core.exceptions import ValidationError
REGEX_EMAIL = '^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
REGEX_PASSWORD = '^(?=.*[a-zA-Z])(?=.*[!@#$%^~*+=-])(?=.*[0-9]).{8,20}'
# if 문
def validate_email(value):
if not re.match(REGEX_EMAIL, value)
raise ValidationError('INVALID_EMAIL_ADDRESS')
# try-except문 (가독성이 더 좋음. 권장)
def validate_password(value):
try:
regex = re.match(REGEX_PASSWORD, value)
except ValidationError:
return ...
⭐️ Exception 처리
반응형
'프로그래밍 > 웹관련' 카테고리의 다른 글
TIL44 | Query Parameters VS Path Parameters (0) | 2021.11.10 |
---|---|
TIL43 | REST API (0) | 2021.11.08 |
TIL37 | Westagram 회원가입 & 로그인 실습 (0) | 2021.10.27 |
TIL35 | Westagram - API Spec & URL Design (0) | 2021.10.27 |
TIL34 | HTTP Status Code (0) | 2021.10.27 |