🍓𝗪𝗲𝗯

[Django] MTV Pattern

안오늘 2020. 8. 19. 09:48

웹을 구성하는 방식으로 프레임워크 동작한다.

 

웹을 구성하는 요소. 분업 및 협업을 진행할 때, 이런 식으로 나눠서 하기도 함. ~.~ 공장처럼 !

1. UI : 화면에 보여지는 인터페이스

2. Data : 화면의 내용을 구성하는 데이터

3. Logic : 내용을 구성하는 방식을 처리하는 로직 

 

 

 django 

1. UI -> templates

* templates에 html을 만들어두고, response로 줄 수 있다. django의 html 문법이 있다.

 

2. Data -> models.py

데이터베이스에 저장되는 데이터를 표현. 장고는 SQL을 사용하지 않아도, 파이썬으로 데이터베이스를 관리할 수 있는 ORM을 제공한다. 

 

3. Logic -> views.py ( 핵심🌟 )

비즈니스 로직을 처리하고 Response를 내려주는 부분!

 


 models.py 

- 데이터베이스

- 장고는 각각의 테이블을 하나의 모델로 본다.

RDB 테이블 간의 관계를 이용해서 foreign key로 다른 테이블을 가리킬 때는

primary key(pk)를 이용하여 가리켜야 한다. (unique한 것으로 !!)

- class 기반으로 만든다. 각각은 instance

 

- makemigrations : models.py에 변화가 있을 때 실행해줘야 하는 명령. 방금 만든 모델이 적용된다.

python manage.py makemigrations

- migrate : 실제 테이블 생성

python manage.py migrate

 

 데이터가 잘 생성되었는지 확인하는 방법 

1. db.sqlite3 에서 열어본다.

2. 장고의 admin을 활용한다. 

* admin 장고의 가장 큰 장점. 관리자 기능. 

관리자 페이지를 새로 만들지 않아도 관리할 수 있다는 것.

ex)  쇼핑몰이라면 상품 정보를 관리하고, 상품을 업로드하는 페이지

       커뮤니티를 운영한다면, 사용자들의 댓글, 정보를 관리하는 페이지

 

python manage.py createsuperuser

나만 사용할 관리자 정보를 만들어야 한다. ( 까먹지 않기 )

Username : admin

Email address: admin@gmail.com

 

python manage.py runserver

여기에서 /admin 하면 관리자 페이지로 들어가게 된다. 여기서 GUI로 실제로 데이터 생성 가능하다.

 

우리가 만든 모델을 admin.py에 등록하기

admin.site.register(모델명)

 

views.py에서 생성한 models.py 에서 데이터 가져오기 ( 조회 )

1. 모델명.objects.all()

    해당 모델에 저장된 모든 데이터를 조회하는 함수. 각각의 객체를 리턴한다.

2. 모델명.objects.filter()

    특정 데이터만 조회하는 함수 : 여러개

3. 모델명.objects.get()

    특정 데이터만 조회하는 함수 : 유일한 값.

    pk로의 조회는 get을 활용한다.

 

 

 


 [ 실습 ] 학생 조회 서비스 

학생 정보를 이름으로 조회할 수 있는 서비스.

반 정보를 담은 모델 ( 그 안에 1, 2, 3, 4, 5, 6반 테이블 있음. 그리고 반 id를 primary key로 학생정보 기입 ), 학생 정보를 담은 모델