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 버튼을 저장할 수 있습니다.
이상으로, 장고에서 기본적인 모델을 만들어보고 적용해보는 과정이었습니다.
다음 글에서는 조금 더 세부적인 사항을 수정해보는 내용을 정리해보도록 하겠습니다.
'웹 프로그래밍 > Django' 카테고리의 다른 글
[Django] 6. 장고 URL 지정하기(라우팅) - urls.py, views.py (0) | 2022.05.02 |
---|---|
[Django] 5. 장고 모델 만들고 반영해보기(2) - 세부 설정 (0) | 2022.05.02 |
[Django] 3. 장고로 앱 생성하기 - manage.py startapp (0) | 2022.05.02 |
[Django] 2. 마이그레이션(migration)과 DB에 관리자 계정 생성하기 (0) | 2022.04.28 |
[Django] 1. 장고 프로젝트 시작하기 (0) | 2022.04.28 |
댓글