wrap-up 세션을 기반으로 수정사항을 정리해보도록 하자 !
git add .
수정한 파일 전부 add하는 것보다 add 하는 파일명을 명시하는 습관 가지기
PositiveIntegerField
'age'와 같이 음수가 없는 값은IntegerField
대신PositiveIntegerField
로 정의해서 디스크 용량을 줄여 더 효율적인 메모리 관리를 할 수 있다.unique = True
필드 옵션에 추가하면 DB에 중복된 값이 저장되지 않는다.M2MField
의through
중간테이블을 수동으로 관리할 때 사용하는 필드옵션
through = '중간테이블로 사용할 테이블 이름'
중간테이블에 Fk값이 아닌 컬럼이 추가될 때 사용함( 확장성 때문에 )DateField
입력양식 '2020-07-21'
데이터를 기준으로 app을 분리하면 app 관리 (데이터, views 등)가 더 직관적이다.
예 ) actor와 movie가 다룰 데이터가 각각 다르기때문에 actor app의 models.py 와 movie app의 models.py가 분리됨. (한 쪽에 몰아서 작성해도 상관없음, 중간테이블이 있는 경우 한 쪽 models 에 작성하면 된다)
작성할 때 Input
과 Output
, 목적
을 명시하면 더 체계적으로 작업할 수 있다.
#예
'''
목적 : client로부터 http POST 요청으로 http request message body에
owner의 정보를 Json 형태로 받아서 DB의 owners 테이블에 저장하는 기능
input : { 'name' : name,
'email' : email,
'age' : age }
output : { 'message' : 'created' }
'''
보통 참조하는 테이블의 Pk값을 입력한다. name이나 email등의 값은 이후 변할 가능성이 있지만 Pk값은 변하지 않기 때문이다. (예 : owner_id )
http -v POST 8000/dog name='뽀삐' age=2 owner_id = 1