라이브러리/Django
[Django] 게시글 애플리케이션 생성
쑤야뚜야
2022. 5. 14. 05:32
1. 애플리케이션 생성
상위 디렉토리 아래 애플리케이션 생성
python manage.py startapp blog
blog 디렉터리 생성된 후 폴더 상태는 아래와 같을 것입니다.
myPythonSite
├── mysite
| __init__.py
| settings.py
| urls.py
| wsgi.py
├── manage.py
├── polls
└── blog
├── migrations
| __init__.py
├── __init__.py
├── admin.py
├── models.py
├── tests.py
└── views.py
2. settings.py에 추가
생성한 애플리케이션을 사용하기 위해서는 장고에 알려야 합니다.
이 역할을 하는 파일이 mysite/settings.py입니다.
이 파일 안의 INSTALLED_APPS에 'blog'를 추가합니다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls.apps.PollsConfig',
'blog',
]
3. 블로그 글 모델 만들기
blog/models.py 파일안에 모든 내용을 삭제 후 아래 코드를 추가하세요.
# Post객체(클래스)는 글을 작성하는 역할을 할 예정입니다.
from django.conf import settings
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
4. 모델을 위한 테이블 생성
데이터베이스에 위에서 생성한 Post 모델을 추가하기 위해 아래의 명령어를 입력합니다.
아래 명령어는 데이터베이스에 반영할 수 있도록 마이그레이션 파일을 준비하는 명령어입니다.
python manage.py makemigrations blog
마이그레이션 파일이 준비되었으니, 아래 명령어를 입력해 실제 데이터베이스에 모델을 반영합니다.
python manage.py migrate blog
5. 확인
admin 페이지에 들어가서 글을 작성할 수 있는 post가 생성되었는지 확인합니다.
post에 들어가면 직접 글을 작성할 수 있습니다.