Chapter 3-2 Django 블로그 목록 페이지 만들기

2025. 5. 6. 17:15·Django

🗂️ 블로그 목록 페이지 만들기 (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 블로그 시스템을 구축할 수 있어요!

'Django' 카테고리의 다른 글

Chapter 3-4 Django에서의 쿠키와 세션 이해 및 실습  (0) 2025.05.06
Chapter 3-3 Django 블로그 상세 페이지 만들기  (0) 2025.05.06
Chapter 2-8 Django ORM 완전 정복: 데이터 삭제, 업데이트, 필터링 실습 정리  (0) 2025.04.30
Chapter 2-7 Django ORM 완벽 가이드  (0) 2025.04.30
Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리  (0) 2025.04.30
'Django' 카테고리의 다른 글
  • Chapter 3-4 Django에서의 쿠키와 세션 이해 및 실습
  • Chapter 3-3 Django 블로그 상세 페이지 만들기
  • Chapter 2-8 Django ORM 완전 정복: 데이터 삭제, 업데이트, 필터링 실습 정리
  • Chapter 2-7 Django ORM 완벽 가이드
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (472) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (7) N
      • 특강 (18)
      • 기술블로그 (126) N
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (34) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 3-2 Django 블로그 목록 페이지 만들기
상단으로

티스토리툴바