[Django] C.R.U.D (2) Wrap-up

juri·2021년 7월 21일
0

Django

목록 보기
6/11
post-thumbnail

Django C.R.U.D (2) Wrap-up

wrap-up 세션을 기반으로 수정사항을 정리해보도록 하자 !

(0) Initial Settings

🚩 git 관련

git add .
수정한 파일 전부 add하는 것보다 add 하는 파일명을 명시하는 습관 가지기

(1) models.py

🚩 Field

  • PositiveIntegerField
    'age'와 같이 음수가 없는 값은 IntegerField 대신 PositiveIntegerField 로 정의해서 디스크 용량을 줄여 더 효율적인 메모리 관리를 할 수 있다.
  • unique = True
    필드 옵션에 추가하면 DB에 중복된 값이 저장되지 않는다.
  • M2MFieldthrough
    중간테이블을 수동으로 관리할 때 사용하는 필드옵션
    through = '중간테이블로 사용할 테이블 이름'
    중간테이블에 Fk값이 아닌 컬럼이 추가될 때 사용함( 확장성 때문에 )
  • DateField
    입력양식 '2020-07-21'

🚩 App

데이터를 기준으로 app을 분리하면 app 관리 (데이터, views 등)가 더 직관적이다.
예 ) actor와 movie가 다룰 데이터가 각각 다르기때문에 actor app의 models.py 와 movie app의 models.py가 분리됨. (한 쪽에 몰아서 작성해도 상관없음, 중간테이블이 있는 경우 한 쪽 models 에 작성하면 된다)

(2) views.py

작성할 때 InputOutput, 목적을 명시하면 더 체계적으로 작업할 수 있다.

#예
'''
목적 : client로부터 http POST 요청으로 http request message body에 
owner의 정보를 Json 형태로 받아서 DB의 owners 테이블에 저장하는 기능
input  : { 'name'  : name,
	   'email' : email,
           'age'   : age     }
output : { 'message' : 'created' }
'''

(3) httpie

보통 참조하는 테이블의 Pk값을 입력한다. name이나 email등의 값은 이후 변할 가능성이 있지만 Pk값은 변하지 않기 때문이다. (예 : owner_id )

http -v POST 8000/dog name='뽀삐' age=2 owner_id = 1
profile
Make my day !

0개의 댓글

관련 채용 정보