본문으로 바로가기

06. 모델(1)

category Django 2020. 3. 20. 20:39

시작하기

여지껏 다루지 않았던 앱 폴더에 있는 models.py에 대한 것을 공부해 보는 시간이다.

기본 베이스 시작은 Hello World를 출력하는 것 처럼 템플릿 폴더를 만들어주고, url , settings, views.py 작성을 마친 상태로 시작한다.

모델은 데이터베이스로써 우리가 클래스로 틀을 만들면 그것을 가져다 (views) 화면에 보여주는 과정을 가진다 (templates)

 

 

1. Models.py에 코드 작성하기

Models.py에 class 를 작성 해 준다.

코드부터 보자면,

클래스 명은 임의대로 정해주었다

코드를 하나하나 살펴보자.

 

 

 

Pr이라는 이름의 클래스를 생성하였고 models 는 Pr 객체가 장고 모델임을 의미 한다.

즉 이 코드는 그냥 이 객체가 장고 모델을 정의하는 코드 라고 생각하면 된다.

 

 

변수에 models. XXXXField 라고 공통적으로 되어 있는 것을 볼 수 있을 것이다.

이런 것들을 모델의 '필드' 라고 하며 수 많은 필드가 있지만 필요 할 때 마다찾아서 사용하길 바란다.

 

CharField는 짧은 글 이며 최대 길이가 200 길이 인 것을 의미한다

TimeField 는 현재 시간이며

TextField 는 본문 같이 긴 내용을 담는 것이다.

 

 

이 부분은 자기 자신의 제목을 반환 하는 메소드이다.

외워두면 좋다.

 

 

2. 만든 객체를 데이터베이스에 알려주기

이 2개의 과정을 거쳐야 한다.

왜 이런 추가적인 과정이 필요 할 까?

장고에서 디폴트로 제공하고 있는 데이터 베이스 sqlite는 장고 언어와 별개이다.

디폴트로 sqlite를 사용하고 있지만 얼마든지 다른 데이터베이스를 사용 할 수 있다.

즉 장고와 DB는 별개의 영역이므로 장고에서 만든 객체를 DB에 알려준다고 생각하면 된다.

makemigrations는 DB가 알아 들을수 있게 번역하는 명령어이며

migrate는 내가 만든 그 내용을 DB에 적용하라는 뜻이다.

 

3. admin 페이지에 등록하기

장고에서 지원하는 admin 페이지는 사이트를 전체적으로 관리하기 위한 인터페이스를 제공한다.

우선 admin 페이지에 들어 가는것은 기본주소/admin 으로 하면 접근 할 수 있다.

하지만 admin 페이지에 들어가면 Username과 Password를 작성하라고 뜨는데 우리는 터미널에서

이 계정을 만들수 있다

이렇게 만들어 주고 확인을 하면 admin 페이지에 아까 만든 객체가 등록이 되지 않아있는 것을 볼 수 있을 것이다. 이제 admin.py를 활용해 보자

 

4. admin.py

admin.py에 import를 해 준다

뜻은 같은 위치(디렉토리상)에 있는 models 폴더에서 아까 만든 Pr 클래스를 가져온다 라는 뜻이다.

 

그리고

이 과정만 진행해주면 끝이다.

 

다음 포스팅에서 마저 진행하도록 하겠다.

'Django' 카테고리의 다른 글

08 BlogProject (1)  (0) 2020.03.23
07 모델(2)  (0) 2020.03.20
05. Wordcount 프로젝트 전 필요한 html 태그  (0) 2020.03.18
04. Django 템플릿 언어  (0) 2020.03.18
03. 디자인 패턴  (0) 2020.03.17