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

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

728x90

<모델이란?>

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

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

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

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

python manage.py makemigrations

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

migration 이란,

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

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

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

python manage.py migrate

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

기타 마이그레이션 명령어

https://tibetsandfox.tistory.com/24

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

일반적으로 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

from http://mingyum119.tistory.com/111 by ccl(A) rewrite - 2021-10-24 17:01:15