웹 프로그래밍/Django

[Django] 4. 장고 모델 만들고 반영해보기(1) - models.py

by seokii 2022. 5. 2.
728x90
반응형

Django 글 리스트 목록

 

모델 (Django Model)

장고에서는 models.py 파일을 통해 장고 웹 프레임워크에서 데이터베이스를 관리할 수 있습니다.

장고의 모델을 이용하면 파이썬으로 CRUD, 입력 폼, 관리자 페이지 등의 기능을 쉽게 구현할 수 있습니다.

SQL을 자세하게는 몰라도 되지만, 최소한 작성 코드를 검증하기 위해서 기본은 알고 사용하기를 권장합니다.

 

모델 코드 작성해보기

from django.db import models

# Create your models here.

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

위와 같이 전 글에서 만든 blog 앱에서 models.py의 파일을 열어 코드를 작성했습니다. (blog/models.py)

- title : 작성한 글의 제목, CharField 함수를 사용해 길이가 정해진 문자열을 저장하도록 함.

- content : 작성한 글의 내용, TextField 함수를 사용해 길이가 정해지지 않은 문자열을 저장하도록 함.

- created_at : 작성한 글의 생성 날짜, DateTimeField 함수를 통해 날짜와 시간을 저장하도록 함.
                 auto_now_add 옵션을 통해 데이터 생성시 현재 시간을 저장하도록 지정함.

- updated_at : 작성한 글의 수정일, 위와 같음.

                   auto_now 옵션을 통해 데이터 갱신시 현재 시간을 저장하도록 지정함.

 

모델 반영하기

위에서 모델을 만들어봤는데, 데이터베이스에 반영되지 않고 파이썬 클래스 코드로만 존재하는 상태입니다.

이를 데이터베이스에 반영해야 실제로 테이블이 생성되고, 모델을 적용할 수 있게 됩니다.

python manage.py makemigrations

python manage.py makemigrations 명령어를 통해 blog앱에서 작성한 모델에 대한 내용의 migrations을 생성합니다.

Migrations for 'blog':

blog/migrations/0001_initial.py

위와 같은 출력을 통해 마이그레이션이 생성되었음을 알 수 있습니다.

python manage.py migrate

마지막으로, 생성한 마이그레이션을 적용하기 위해서

python manage.py migrate 명령어를 입력하고 결과를 확인합니다.

위와 같이 정상적으로 완료된 것을 확인할 수 있습니다.

 

관리자 페이지를 통해 확인

관리자 페이지를 통해서 최종적으로 확인해보도록 하겠습니다.

 

from django.contrib import admin
from .models import Post

# Register your models here.

admin.site.register(Post)

위와 같이 blog/admin.py 의 파일에서 코드를 작성합니다.

관리자 페이지에 Post 모델을 등록하는 코드입니다.

 

코드를 작성하고 manage.py runserver를 통해 관리자 페이지에 접속하게 되면, 위와 같은 변화가 생긴 것을 확인할 수 있습니다.

ADD POST 버튼을 눌러 새로운 포스트를 생성해보도록 합시다.

내용 작성을 완료하고, SAVE 버튼을 저장할 수 있습니다.

이상으로, 장고에서 기본적인 모델을 만들어보고 적용해보는 과정이었습니다.

다음 글에서는 조금 더 세부적인 사항을 수정해보는 내용을 정리해보도록 하겠습니다.

 

 

728x90
반응형

댓글