내 잡다한 노트

모델 본문

Web/Django

모델

peanutwalnut 2022. 4. 10. 11:12

모델은 웹서비스에서 사용할 정보의 내용, 특성을 정의한 것을 의미.

어떤 정보들을 저장하기 위해 사용하는 개념이다.

 

맛집 사이트를 개발한다고 생각한다고 모델링을 하는 과정을 살펴보면

1) 취급할 정보의 대략적인 종류를 결정한다. 종류 각각이 모델 클래스가 된다.

ex) 맛집, 평가, 회원

2) 각 취급할 정보의 속성을 정리한다. 맛집(주소, 위치, 명칭, 전화번호, 사진 등),

평가(별점, 글쓴 시각, 글쓴 회원 등), 회원(이메일, 닉네임 등)

3) 각 속성의 자료형을 결정한다.

 

데이터베이스는 데이터를 저장하고 관리하고 조회하기 위한 시스템을 의미한다. 

이 데이터베이스에 새로운 데이터를 저장하고 다시 저장된 정보들을 표시한다.

모델 클래스를 파이썬 클래스를 선언해 정의한다. 이렇게 정의한 하나의 클래스가 하나의

테이블로 만들어지고 데이터베이스는 여러개의 테이블로 구성된다.

 

모델 클래스를 데이터베이스의 실제 테이블로 생성하는 명령어

python manage.py makemigrations

python manage.py migrate

그러면 migrations에 새로운 파일들이 생기는 걸 볼 수 있다.

 

#MTV 패턴

웹 프로그램 개발 시 일반적으로 언급되는 패턴은 MVC(Model - view - controller) 패턴이다.

M은 데이터, V는 사용자 인터페이스, C는 데이터를 처리하는 로직.

하지만 쟝고에서는 MTV 패턴으로 바꿔서 정의하고 있다.

 

M  V  C

M  T  V

밑에 방향으로 업그레이드된거라고 생각하자.

Model : 모델 클래스, 데이터 객체 정의와 그 데이터

Template : 사용자에게 보여지는 인터페이스 화면

View : 데이터를 가져오고 적절하게 가공해 결과를 템플릿에 전달하는 역할

 

# http 요청과 응답의 흐름

1) 클라이언트가 특정 주소로 요청을 보낸다

2) 장고 웹앱에 요청이 들어옴

3) url conf 모듈을 이용해 요청의 url을 확인

4) 해당 url에 대한 처리를 담당하는 뷰를 결정, 로직 실행

5) 모델을 통해 데이터를 처리

6) 템플릿으로 최종 html 코드를 생성

7) html 코드를 클라이언트로 보낸다.

 

 

# 데이터 생성

python manage.py shell

명령어를 통해 쟝고에서 동작할 코드를 대화형으로 실행가능

from second.models import Post

post = Post.objects.create(title='1', content='2')

post.save()

save()까지 해줘야 저장이 된다.

 

 

 

 

 

 

 

'Web > Django' 카테고리의 다른 글

ORM  (0) 2022.04.11
Form  (0) 2022.04.11
3번째 챕터를 보고 기억해둘 부분들  (0) 2022.04.09
템플릿  (0) 2022.04.08
장고 웹 프로젝트와 웹 앱 만들기  (0) 2022.04.08