model 클래스 만들고 관리자 페이지 만들기
1. app 생성
django 프로젝트는 여러개의 앱으로 구성되어있음
1) manage.py 파일에서 명령어로 app을 생성
burgers라고 앱 이름 설정함
python manage.py startapp 앱이름
명령어를 입력하면 burgers라는 디렉터리가 생성됨
2) django에 생성한 앱 등록해주기
프로젝트 폴더 안에 있는 settings.py에서 INSTALLED_APPS에 등록
2. Model 클래스 구현
Model에서는 데이터베이스 테이블의 형태를 구성함
model 역할을 하는 클래스를 생성할때는 django에 내장된 models.Model 클래스를 반드시 상속받아야 함
models.Model 클래스는 정의한 클래스가 데이터베이스에서 하나의 테이블 역할을 할 수 있도록 도와줌!
1) 생성한 앱 폴더에 있는 models 파일에 클래스를 생성해줌 (데이터베이스의 형태를 지정해줌)
burger라는 클래스를 정의해주고 name, price, calories 속성을 지정해줌
CharField는 속성이 문자열 형태, IntegerField는 속성이 숫자 형태를 가짐을 알려줌
3. 데이터베이스 마이그레이션 생성과 적용
마이그레이션으로 Model에서 정의한 테이블 형태 그대로 실제 데이터 베이스 안에 테이블을 생성
1) 아직은 데이터 베이스를 만들지 않은 상태기 때문에 DB 생성을 위해 migrate
아래 코드를 실행하면 db.sqlite3 파일이 생성됨
python manage.py migrate
2) 앱에 대한 마이그레이션 파일 생성
아래 코드를 실행하면 앱에 0001_initial.py라는 마이그레이션 파일이 생성됨
python manage.py makemigrations 앱이름
3) 생성한 마이그레이션 파일을 DB에 적용
burgers 앱의 모든 마이그레이션을 적용
python manage.py migrate 앱이름
sqlite에서 확인해보면 burgers앱의 burger 테이블이 생성된 것을 확인할 수 있음
4. Burger 클래스를 다룰 수 있는 관리자 페이지 생성
관리자 기능은 각 app의 admin.py에서 정의함
위 코드 입력후 개발서버 admin 페이지에 들어가면 아래와 같은 페이지가 확인
python manage.py createsuperuser로 관리자 계정 생성
지정해준 아이디와 비밀번호 입력하면 아래와 같은 페이지가 뜸
5. 데이터 추가
위 페이지에서 burgers에 항목을 추가했더니, 아래와 같이 뜸
Burger object(1)이 아닌 지정한 이름으로 나오게 하기 위해서 models에 코드를 추가
개발서버를 새로고침 해보면 이름이 바뀐것을 확인할 수 있다