URL dispatcher (운항 관리자, 분배기)
URL 패턴을 정의하고 해당 패턴이 일치하는 요청을 처리할 view 함수를 연결(매핑)
App URL mapping
각 앱에서 URL을 정의하는 것
▶ 프로젝트와 각 앱이 URL을 나누어 관리하기 편하게 하기 위함
2번째 앱 pages 생성 후 발생할 수 있는 문제
view 함수 이름이 같거나 같은 패턴의 URL 주소를 사용하게 되는 경우
아래 코드와 같이 해결해 볼 수 있으나 더 좋은 방법이 필요
URL을 각자 app에서 관리하자
include()
프로젝트 내부 앱들의 URL을 참조할 수 있도록 매핑하는 함수
▶ URL의 일치하는 부분까지 잘라내고, 남은 문자열 부분은 후속 처리를 위해 include 된 URL로 전달
include 적용
변경된 프로젝트의 urls.py
url 구조 변경에 따른 문제점
Naming URL patterns
URL에 이름을 지정하는 것 (path 함수의 name인자를 정의하여 사용)
URL 이름 공간
Django Model
DB의 테이블을 정의하고 데이터를 조작할 수 있는 기능들을 제공
▶ 테이블 구조를 설계하는 '청사진(blueprint)'
작성한 데이터를 저장할 수 있음
모델을 작성할 때 필요한 것
필드 이름
필드 데이터 타입
(선택) 필드의 제약 조건
제약 조건
데이터가 올바르게 저장되고 관리되도록 하기 위한 규칙
▶ ex) 숫자만 저장되도록, 문자가 100자 까지만 저장되도록 하는 등
Migrations
model 클래스의 변경사항(필드 생성, 수정 삭제 등)을 DB에 최종 반영하는 방법
0001_initial.py 임의로 변경하면 안됨
추가 Migrations
기본적으로 빈 필드를 추가할 수 없다.
Model Field
DB 테이블의 필드(열)을 정의하며, 해당 필드에 저장되는 데이터 타입과 제약조건을 정의
CharField()
길이의 제한이 있는 문자열을 넣을 때 사용
(필드의 최대 길이를 결정하는 max_length는 필수 인자)
TextField()
글자수가 많을 때 사용
DateTimeField()
날짜와 시간을 넣을 때 사용
DateTimeField의 선택 인자 ★ 단답형
Automatic admin interface
Django는 추가 설치 및 설정 없이 자동으로 관리자 인터페이스를 제공
▶ 데이터 확인 및 테스트 등을 진행하는데 매우 유용