장고 프로젝트에서 블로그 앱 만들기
장고 프로젝트에서 블로그 앱을 만드는 과정은 장고의 MTV(Model-Template-View) 패턴을 따릅니다. 이 과정을 통해, 모델을 정의하여 데이터를 저장하고, 템플릿을 사용하여 사용자 인터페이스를 구성하며, 뷰를 통해 앱의 로직을 처리합니다. 다음은 장고 프로젝트에서 블로그 앱을 만드는 단계별 과정입니다.
1. 블로그 앱 생성
장고 프로젝트 디렉터리에서 다음 명령어를 실행하여 블로그 앱을 생성합니다:
python manage.py startapp blog
이 명령어는 blog
라는 이름의 앱 디렉토리를 생성하고, 앱을 구성하는 기본 파일들을 포함합니다.
2. 앱을 프로젝트에 등록
생성된 블로그 앱을 프로젝트의 설정에 추가해야 합니다. 프로젝트의 settings.py
파일을 열고, INSTALLED_APPS
설정에 blog
앱을 추가합니다:
INSTALLED_APPS = [
# 기존 앱들
'blog', # 이 줄을 추가
]
3. 모델 정의
블로그 포스트를 위한 모델을 blog/models.py
파일에 정의합니다. 예를 들어, 포스트 제목, 내용, 작성일, 발행 여부 등의 필드를 포함할 수 있습니다:
from django.db import models
from django.utils import timezone
class Post(models.Model):
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. 데이터베이스 마이그레이션
모델을 정의한 후, 데이터베이스에 테이블을 생성하기 위해 마이그레이션을 실행합니다:
python manage.py makemigrations blog
python manage.py migrate blog
5. 관리자 페이지에서 모델 관리
블로그 포스트 모델을 관리자 페이지에서 관리할 수 있도록 blog/admin.py
파일을 수정합니다:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
6. 뷰 생성
블로그 포스트를 보여주기 위한 뷰를 blog/views.py
파일에 생성합니다. 예를 들어, 모든 포스트를 리스트로 보여주는 간단한 뷰는 다음과 같습니다:
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.filter(published_date__isnull=False).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
7. 템플릿 생성
뷰에서 사용할 템플릿을 blog/templates/blog/post_list.html
에 생성합니다. 템플릿에서는 뷰에서 전달한 포스트 목록을 반복하여 표시합니다:
<!DOCTYPE html>
<html>
<head>
<title>Blog</title>
</head>
<body>
<div>
<h1>Blog Posts</h1>
{% for post in posts %}
<div>
<h2>{{ post.title }}</h2>
<p>{{ post.text }}</p>
</div>
{% endfor %}
</div>
</body>
</html>
8. URLconf 설정
블로그 앱의 URL을 설정하기 위해 blog/urls.py
파일을 생성하고, 뷰와 URL 패턴을 연결합니다. 프로젝트의 urls.py
파일에도 블로그 앱의 URLconf를 포함시켜야 합니다:
# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
그리고 프로젝트의 urls.py
파일에서 blog.urls
를 포함시킵니다:
# 프로젝트의 urls.py
from django.urls import include, path
urlpatterns = [
# 다른 URL 패턴들
path('blog/', include('blog.urls')),
]
이 단계를 완료하면, 장고 프로젝트에 블로그 앱이 성공적으로 추가되고, 블로그 포스트를 관리하고 표시할 수 있습니다.
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
[용서 프로젝트] OpenAI API를 통해 GPT-4 모델과의 대화 시도 (40) | 2024.03.25 |
---|---|
[용서 프로젝트] OpenAI Node API Library 활용 API 연결 (40) | 2024.03.24 |
[장고] 일반 사용자 추가 (47) | 2024.03.21 |
[Django] 관리자 계정 만들기 (51) | 2024.03.20 |
[Django] 장고에서 마이그레이션이란? (38) | 2024.03.19 |
댓글