Django
Chapter 3-2 Django 블로그 목록 페이지 만들기
Chansman
2025. 5. 6. 17:15
🗂️ 블로그 목록 페이지 만들기 (Django)
1️⃣ 관리자 페이지 설정 (admin.py)
📌 관리용 페이지 구성
from django.contrib import admin
from blog.models import Blog
@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
... # 추후 확장 가능
📌 슈퍼유저 생성
python manage.py createsuperuser
→ 관리자 페이지에서 블로그 글 작성 가능
2️⃣ 모델 개선 (models.py)
📌 사용자 친화적인 출력과 Admin 표시를 위한 설정
from django.db import models
class Blog(models.Model):
CATEGORY_CHOICES = (
('free', '자유'),
('travle', '여행'),
('cat', '고양이'),
('dog', '강아지')
)
category = models.CharField('카테고리', max_length=10, choices=CATEGORY_CHOICES)
title = models.CharField('제목', max_length=100)
content = models.TextField('본문')
created_at = models.DateTimeField('작성일자', auto_now_add=True)
updated_at = models.DateTimeField('작성일자', auto_now=True)
def __str__(self):
return f'[{self.get_category_display()}] {self.title[:10]}'
class Meta:
verbose_name = '블로그'
verbose_name_plural = '블로그 목록'
3️⃣ 기본 설정 변경 (settings.py)
📌 언어 설정 변경 (한국어로)
LANGUAGE_CODE = 'ko-KR'
📌 템플릿 경로 설정 추가
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'], # 수정된 부분
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
4️⃣ 목록 뷰 작성 (views.py)
📌 블로그 리스트를 전달하는 View 함수 구성
from django.shortcuts import render
from blog.models import Blog
def blog_list(request):
blogs = Blog.objects.all()
context = {'blogs': blogs}
return render(request, 'blog_list.html', context)
5️⃣ 템플릿 구성 (blog_list.html)
📌 templates/blog_list.html 생성
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>블로그 목록</title>
</head>
<body>
<h1>블로그 목록</h1>
{% for blog in blogs %}
<p>
<a>{{ blog.title }} - {{ blog.created_at }}</a>
</p>
{% endfor %}
</body>
</html>
6️⃣ URL 연결 (urls.py)
📌 blog_list 뷰 함수와 URL 연결
from django.contrib import admin
from django.urls import path
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', views.blog_list),
]
✅ 구현 완료 체크리스트
☑️ 슈퍼유저 생성 및 관리자 페이지에서 데이터 생성
☑️ 모델 문자열 표현 및 Meta 클래스 추가
☑️ 블로그 리스트 View 함수 작성
☑️ 템플릿 렌더링 확인
☑️ URL 연결 및 페이지 접속 테스트
💡 관리자 페이지와 템플릿을 잘 활용하면, 초보자도 손쉽게 Django 블로그 시스템을 구축할 수 있어요!