반응형
📘 『시마당 프로젝트 따라하기』
7장. 업로드된 시 목록 보기 (ListView 만들기)
작성자: easyfly
작성일: 2025년 7월 14일
🟧 1. 시 목록 보기란?
- 업로드된 시를 테이블 또는 박스 형태로 나열하는 기능입니다.
- 시제목, 작가, 등록일자 등을 확인할 수 있습니다.
- 사용자에게 작성 결과를 시각적으로 보여주는 핵심 기능입니다.
🟦 2. 뷰 함수 작성 (기본 리스트 뷰)
📁 위치
madang/poem/views.py
📄 코드 추가
from .models import Poem
def poem_list(request):
poems = Poem.objects.all().order_by('-created_at') # 최신순
return render(request, 'poem/poem_list.html', {'poems': poems})
🟧 3. URL 연결
📁 위치
madang/poem/urls.py
📄 코드 추가
urlpatterns += [
path('list/', views.poem_list, name='poem_list'),
]
🟧 4. 템플릿 작성
📁 위치
madang/poem/templates/poem/poem_list.html
📄 코드 예시
<!DOCTYPE html>
<html>
<head>
<title>시 목록</title>
</head>
<body>
<h1>시 목록 (전자책 출간용)</h1>
{% if poems %}
<ul>
{% for poem in poems %}
<li>
<strong>{{ poem.title }}</strong><br>
<em>{{ poem.author.name }}</em><br>
<small>{{ poem.created_at|date:"Y년 m월 d일 H:i" }}</small><br>
<p>{{ poem.content|linebreaks }}</p>
<hr>
</li>
{% endfor %}
</ul>
{% else %}
<p>아직 등록된 시가 없습니다.</p>
{% endif %}
<p><a href="{% url 'upload_poem' %}">시 쓰러 가기</a></p>
</body>
</html>
🧪 5. 결과 확인
✅ 서버 실행
python manage.py runserver 0:8000
✅ 접속 주소
http://<EC2 IP>:8000/poem/list/
🔍 결과 화면
- 시가 여러 편 나열되며,
- 제목 / 작가 / 작성일 / 내용이 순서대로 출력됩니다.
- "시 쓰러 가기" 버튼을 눌러 다시 입력 화면으로 돌아갈 수 있습니다.
📝 정리
항목 | 완료 여부 |
시 목록 뷰 함수 생성 | ✅ 완료 |
시 목록 템플릿 작성 | ✅ 완료 |
URL 라우팅 연결 | ✅ 완료 |
최신순 정렬 및 출력 확인 | ✅ 완료 |
다음 예고 – 『8장. 전자책 출간 준비: EPUB 파일 자동 생성』
- 업로드된 시들을 모아 하나의 전자책 파일(EPUB)로 변환합니다.
- 다운로드 가능한 .epub 파일을 만들어 시니어 작가의 작품집을 자동 출간합니다.
'HTML5 > 반응형 웹' 카테고리의 다른 글
시 목록을 표 형식으로 보기 + 시 선택 기능 (0) | 2025.07.16 |
---|---|
시 목록 페이지 분리: "자세히 보기" 구현 (2) | 2025.07.15 |
시 업로드 페이지 만들기 (템플릿과 폼) (1) | 2025.07.13 |
관리자 페이지에 모델 등록하기 (1) | 2025.07.12 |
시 모델 만들기: Poem과 Author (2) | 2025.07.11 |