Django 앱 생성하기
- 프로젝트를 기능 단위로 쪼갠 덩어리 (웹 애플리케이션의 구성 요수, 하나의 기능적 단위)
django-admin startapp post
이렇게 post라는 앱을 생성하고
seminar/settings.py 파일을 수정해서 installed app 리스트에 추가함
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'post.apps.PostConfig', # 'post' 라고만 적어도 됌
]
* 하나의 Django 앱은 여러 개의 모델을 포함할 수 있음 (= 여러 유형의 데이터를 다룰 수 있음)
* 앱을 생성했다면 model을 설계해야됨~~
=> 블로그 글(post) app이 가져야 하는 요소에는 제목, 내용, 작성 시점 등의 정보가 필요할 것
=> Post model을 만들어보자
(Post App의) Model 만들기
posts/models.py 의 내용을 아래와 같이 채운다
from django.db import models
from django.utils import timezone
# Create your models here.
class Post(models.Model):
title = models.CharField(max_length=256)
content = models.TextField()
created_at = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
models.Model 클래스를 상속받고 title, content, created_at 필드 생성 및 필드 타입 지정해줌
참고로 id라는 속성 값이 자동으로 추가된다 (모든 인스턴스가 갖는 고유의 id)
inner function을 활용해 객체 출력 시 title 값이 출력되도록 함
https://docs.djangoproject.com/en/4.1/ref/models/fields/
위 사이트들을 참고해서 Model의 필드타입을 정하자
Django에서 Model 클래스를 생성한다고 끝이 아님.
DB와 연동시킬수 있도록 해당 모델에 대응하는 테이블을 똑같이 생성해줘야 함
=> Python Model 클래스의 수정 (및 생성)을 DB에 적용하는 과정을 migration 이라고 부른다
python manage.py makemigrations
- 모델에 대한 변경사항을 감지하고 migration 파일로 생성하는 것 (app/migrations 폴더에 저장, DB가 알아듣는 코드로~)
- field가 새로 생겼거나, 삭제해야 할 field가 생겼을 경우 반드시 새로운 migration file을 만들어줘야 함
- settings.py 파일의 INSTALLED_APPS에 해당 앱의 이름이 추가되어있어야 함 반드시!!
python manage.py migrate
- 마이그레이션파일을 실제 DB에 적용하는 과정, DB의 스키마를 "실제로" 변경
맞다 SQLite Viewer 라는 Extension을 깔자~~
'web > django' 카테고리의 다른 글
Django SWAGGER 이용해 API 명세 작성하기 (0) | 2024.05.08 |
---|---|
Django serializer 활용하기 (0) | 2024.05.08 |
Django View 설계하기 (0) | 2024.05.07 |
Django 프로젝트의 구조 및 관련 개념 정리 (0) | 2024.05.07 |
Django 프로젝트 세팅하기 (0) | 2024.05.07 |