Framework/Django

파이썬으로 장고(Django) 공략하기 : 입문 (2)Django 모델

2021. 10. 24. 16:46
728x90

<모델이란?>

 

저장, 처리되는 정보의 개념이며, 스키마라고도 부른다.

이러한 모델의 규칙에 따라 만드는 저장 공간을 데이터베이스라고 한다. 

 

즉, 데이터베이스는 모델링 된 테이블들의 집합을 의미한다. 

장고에서 모델을 구현하면 자동으로 데이터베이스가 생성될 수 있다. 

python manage.py makemigrations

database의 엔진에 맞는 형태로 코드를 생성해준다. 

 

migration 이란, 

https://docs.djangoproject.com/en/3.2/topics/migrations/

 

Migrations | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

모델의 변경 내역을 DB 스키마에 적용하는 장고의 데이터 관리 시스템이라고 한다. 

하나의 마이그레이션 파일은 하나의 웹 앱에 대한 모델, 스키마를 관리한다. 

 

python manage.py migrate

명령어를 통해 실제 DB에 변경사항을 저장한다. 

 

기타 마이그레이션 명령어

https://tibetsandfox.tistory.com/24

 

장고(Django) - 마이그레이션(Migration)

마이그레이션(Migration)이란? 장고 공식 문서에서는 마이그레이션이 모델의 변경 내역을 DB *스키마에 적용시키는 장고의 방법이라고 설명하고 있습니다. 장고는 ORM을 사용하기 때문에 models.py와

tibetsandfox.tistory.com

 

 

<Model 클래스 선언>

title, content 의 Field를 가지고 있는 Post 클래스를 만든다.

 

<MTV 패턴>

 

일반적으로 MVC의 개념을 사용한다.

(Model, View, Controller)

 

MTV (Model, Template, View)를 장고에서 사용하는데,

MVC의 View가 Template의 역할을, Controller가 View의 역할을 한다. 

 

 

1) Client : 특정 주소로 요청을 보낸다

2) Server : 요청을 받고, URL을 처리 -> URL에 해당하는 View를 결정

3) method가 실행되고, Render라는 메소드에서 template 파일로 넘겨진다. 

 

 

<장고 모델을 활용한 데이터 생성>

from second.models import Post
post = Post.objects.create(title="this is title", content="this is content")
post.save() # 생성한 객체를 저장
posts = Post.objects.all() # 쿼리셋 생성
posts[0].title #this is title 출력

이렇게 posts는 하나의 배열처럼 다룰 수 있고, 테이블의 개념과 같다. 

post = Post.objects.create(title="this is title2", content="this is content2")

이렇게 추가하면 posts 쿼리셋에 배열처럼 post 객체가 담기는 것을 알 수 있다.

 

<화면에 데이터 출력하기>

from . import views
from django.urls import path

urlpatterns = [
	path('list/', views.list, name="list")
]
def list(request):
	context = {'items' : Post.objects.all() }
    return render(request, 'second/list.html', context)

저장되어 있는 쿼리셋의 정보들을 

Post.objects.all() 메소드를 통해 출력할 수 있다.

 

728x90
저작자표시

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

MTV패턴에서 MVC패턴으로 아키텍처 변경, 기존 코드의 문제점 분석과 해결책 제시  (0) 2021.11.04
파이썬으로 장고(Django) 공략하기 : 입문 (3) Django 폼  (0) 2021.10.24
파이썬으로 장고(Django) 공략하기 : 입문 (1)Django 시작하기  (0) 2021.10.24
인프런 Django 초보 가이드 실습을 통해 알아보는 장고 입문  (0) 2021.10.01
'Framework/Django' 카테고리의 다른 글
  • MTV패턴에서 MVC패턴으로 아키텍처 변경, 기존 코드의 문제점 분석과 해결책 제시
  • 파이썬으로 장고(Django) 공략하기 : 입문 (3) Django 폼
  • 파이썬으로 장고(Django) 공략하기 : 입문 (1)Django 시작하기
  • 인프런 Django 초보 가이드 실습을 통해 알아보는 장고 입문
MINGYUM
MINGYUM
😼 Github : https://github.com/Mingyum-Kim
MINGYUM
코딩하는 겸
MINGYUM
전체
오늘
어제
  • 분류 전체보기 (351)
    • 우아한테크코스 (85)
      • 레벨0 (10)
      • 레벨1 (17)
      • 레벨2 (22)
      • 레벨3 (5)
      • 레벨4 (7)
      • 레벨5 (23)
    • Langauge (41)
      • JavaScript (2)
      • Java (16)
      • C++ (21)
      • Kotlin (1)
    • Framework (67)
      • Flask (3)
      • Spring (44)
      • Node.js (3)
      • Express.js (1)
      • Django (5)
      • Front-end (10)
      • Rails (1)
    • Algorithm (50)
      • Baekjoon (25)
      • Algospot (7)
      • Programmers (9)
    • Server (23)
      • Linux (4)
      • MQ (1)
      • Architecture (6)
      • Docker (8)
      • DB (4)
    • DEV book (18)
      • Clean Code (3)
      • 토비의 스프링 3.1 (10)
      • 객체지향의 사실과 오해 (3)
      • TDD (1)
    • Major Study (26)
      • Object Oriented Programming (6)
      • Digital Logic Circuit (1)
      • Artificial Intelligence App.. (6)
      • Digital Image Processing (6)
      • Database Design (3)
      • Data Structure (4)
      • Computer Network (0)
    • Other (36)
      • 기록 (12)
      • git (5)
      • Hardware (5)
      • OpenCV (2)
      • Web Hacking (9)
      • System Hacking (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • mysql
  • 백준
  • Linux
  • 스프링부트
  • 파일
  • 해결
  • SpringBoot
  • 설정서버
  • DBbrowser
  • 인스턴스
  • AWS
  • 오블완
  • 데이터베이스
  • Java
  • db
  • AmazonLinux2
  • 르블랑의법칙
  • programmers
  • c++
  • 머신러닝
  • spring
  • MVC
  • 티스토리챌린지
  • 프로그래머스
  • 비트마스크
  • 첨부파일
  • 스프링
  • ConfigServer
  • s3
  • 카카오

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
MINGYUM
파이썬으로 장고(Django) 공략하기 : 입문 (2)Django 모델
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.