화요일(01.21)
Django Model 관계 by 안성빈 선배님
-다대일(ManyToOne Relationship)
한 테이블에 있는 한개 이상의 레코드가 다른 테이블에 있는 하나의 레코드를 참조할 때
ex-고객과 주문(Order)
-다대다
한 테이블에 있는 한개 이상의 레코드가 다른 테이블에 있는 하나 이상의 레코드를 참조할 때
다대다의 경우 두 테이블을 참조하는(두 테이블의 foreign-key를 모두 가지고있는) 테이블을 새로 생성한다.
만약 두 테이블 사이에 낀 매개 테이블에 속성을 집어넣고 싶다면 through를 사용해 두개의 테이블을 foreign key로 삼는 테이블을 명시적으로 생성해주면 된다.
ex-포스팅과 태그
-일대일
한 테이블에 있는 한개의 레코드가 다른 테이블에 이는 한 개의 레코드와 대응될 때
ex- 유저와 프로필
-null=True와 blank=True의 차이
null=True : 입력값이 빈 문자열이면 DB에 null로 저장된다.
blank=True : 입력값이 없으면 DB에 빈 문자열로 저장된다.
Django convention으로 문자열 필드에는 null=True 대신 blank=True 옵션을 추천하고있다.
DB에서 해당 정보가 없음을 뜻하는 상태는 NULL 밖에 없지만, Django는 문자열 필드에 한하여 ''(빈문자열)을 NULL상태와 동일시하고있다. 이 때 동일한 ‘값이 없는 상태’에 대하여 굳이 ’’(빈문자열)과 null값 두개의 서로 다른 형태로 표현할 필요가 없기 때문에, 관습적으로 문자열 필드에는 blank=True옵션을 넣는다.
목요일(01.23)
Django CRUD 심화 by 홍지형 선배님
-settings.py의 템플릿 설정
DIRS : [os.path.join(BASE_DIR-최상위폴더-, ‘프로젝트폴더’, ‘templates’]
이렇게 설정해두면 BASE_DIR/프로젝트폴더/templates위치를 finder가 인식한다.
만약 templates위치를 최상위 폴더 아래에 두었다면 join(인자) 인자부분에 BASE_DIR, ’templates’만 넣으면 된다.
-related_name과 verbose_name의 차이점
verbose_name : 해당 필드에 붙여주는 네임, 별명 같은것. 지정해주면 admin창에서 해당 필드에 필드명 대신 붙어서 나온다.
related_name : foreignkey를 지정하는 테이블(즉, 참조하는 테이블)에 붙이는 이름. 만약 related_name을 정하지 않는다면 foreignkey로 지정된 테이블(즉, 참조된 테이블)에서 지정하는 테이블에 접근할 때 <참조된 모델명>.<참조한 모델명_set>.함수()을 사용해야한다.
4주차에도 내용이 썩 많지 않다.
아무래도 설 연휴도 끼어있고, Django의 기본적인 내용들을 한번에 이해하기 어렵기 때문에 반복학습위주로 강의를 하기 때문인 듯 하다. 다행인 점은 몇 번씩이나 같은 과정을 반복하다 보니 MTV패턴과 Django의 기본적인 구성에 대해 조금이나마 감을 잡게 되었다는 것이다. 5주차를 넘기고 나면 팀프로젝트가 시작될 것이고 그 때부터는 원하는 서비스를 구현하기 위해서 직접 새로운 부분들을 찾아서 공부해야 할 텐데, 그때부터 다시 포스팅 할 것이 많아질 듯하다.
'Always Awake > 피로그래밍 12기(19.12.31~20.02.22)' 카테고리의 다른 글
피로그래밍 12기 5주차 활동 정리(20.01.28~20.02.01) (0) | 2020.02.02 |
---|---|
5주차 수요일 팀과제 - 가위바위보 게임 만들기 (0) | 2020.01.31 |
4주차 설 개인과제 - 재고 관리 사이트 만들기 (0) | 2020.01.27 |
피로그래밍 12기 3주차 활동정리(20.01.14~20.01.20) (0) | 2020.01.20 |
피로그래밍 12기 2주차 활동정리(20.01.07~20.01.13) (0) | 2020.01.13 |
댓글