[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/WEB

django 기초 - MTV 패턴

inu 2020. 8. 21. 15:38
반응형

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을 이용한다.
반응형