반응형
MTV 패턴
- 사실 django의 원리를 봤을 때 우리는 이미 MTV 패턴에 대해 파악했다. (https://inuplace.tistory.com/584)
- MTV는 Models, Templates, Views, 3개의 약자이다.
- 웹을 구성하는 요소는 Data (화면의 내용을 구성하는 데이터) / UI (화면에 보이는 인터페이스) / Logic (내용를 구성하는 방식을 처리하는 로직) 으로 구성된다. django는 이를 3개의 M,T,V가 나누어 수행한다.
- Models : Data
- Templates : UI
- Views : Logic
- 즉, 각 파일(models.py / templates 내부 html / views.py)이 Data,UI,Logic 기능을 각각 수행하게 되는 것이다. 이것이 MTV 패턴이다.
- templates와 views.py는 이미 충분히 사용해보았으므로 models.py에 대해서만 알아보겠다.
models.py
- model이 django의 데이터베이스라고 생각하면 된다.
- 데이터베이스 하나의 테이블의 역할을 django에선 하나의 모델이 한다.
class AiClass(models.Model):
class_num = models.IntegerField()
teacher = models.CharField(max_length=30)
class_room = models.CharField(max_length=30)
students_num = models.IntegerField()
class AiStudent(models.Model):
class_num = models.IntegerField()
name = models.CharField(max_length=30)
phone_num = models.CharField(max_length=30)
intro_text = models.TextField()
- 위와 같이 model에 테이블의 정보를 클래스의 형태로 입력한다.
- 각 테이블의 정보를 각 클래스가 담고 있고, 이를 통해 데이터를 생성 및 관리한다고 생각하면 된다.
python manage.py makemigrations
python manage.py migrate
- 단순히 models.py에 클래스 정보를 입력한 것만으로 models에서 데이터를 저장하고 사용할 수는 없다.
- 추가적으로 django에게 알려줘야 해당 모델변화가 적용된다.
- 위 두 명렁어를 cmd에서 입력해 django에게 새로운 테이블을 생성했다는 사실을 알려준다.
- 모델에 변화가 생길 때마다 실행해주어야 한다. (정확히는 makemigrations가 변화를 감지하는 것이고, migrate가 실질적 생성을 수행한다.)
- 데이터의 생성여부는 sqlite3를 직접 열어보거나, admin을 이용한다.
반응형
'🛠 기타 > WEB' 카테고리의 다른 글
django 기초 - models.py 데이터 가져오기 (0) | 2020.08.23 |
---|---|
django 기초 - admin (0) | 2020.08.21 |
django 기초 - form 태그로 POST하기 (0) | 2020.08.21 |
django 기초 - views.py 에서 html 파일로 데이터 넘기기 (0) | 2020.08.21 |
django 기초 - 원리의 기초적용 (render) (0) | 2020.08.21 |