HTML5/반응형 웹

시 목록을 표 형식으로 보기 + 시 선택 기능

forSilver 2025. 7. 16. 15:19
반응형

지금처럼 <ul>로 나열된 목록은 시가 많아질수록 가독성과 선택성이 떨어지며,
출간용 시 선택에도 불편합니다.

관리가 불편한 리스트

 

다음과 같이 **표 형식(테이블)**으로 바꾸고, 각 행에 선택용 체크박스“보기” 버튼을 함께 넣겠습니다.

선택이 용이한 테이블형 리스트


📘 『시마당 프로젝트 따라하기』

9장. 시 목록을 표 형식으로 보기 + 시 선택 기능

작성자: easyfly
작성일: 2025년 7월 16일


🟦 1. 목록 템플릿 수정 – 표 형식 + 선택

📁 poem/templates/poem/poem_list.html

<!DOCTYPE html>
<html>
<head>
    <title>시 목록 (전자책 출간용)</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid #ccc;
            padding: 8px;
            text-align: left;
        }
        th {
            background-color: #f0f0f0;
        }
        a.button {
            text-decoration: none;
            padding: 4px 8px;
            background-color: #4CAF50;
            color: white;
            border-radius: 4px;
        }
    </style>
</head>
<body>

<h1>📚 시 목록 (전자책 출간용)</h1>

<form method="post" action="#">
    {% csrf_token %}
    <table>
        <tr>
            <th>선택</th>
            <th>제목</th>
            <th>작가</th>
            <th>작성일</th>
            <th>보기</th>
        </tr>
        {% for poem in poems %}
        <tr>
            <td><input type="checkbox" name="selected_poems" value="{{ poem.id }}"></td>
            <td>{{ poem.title }}</td>
            <td>{{ poem.author.name }}</td>
            <td>{{ poem.created_at|date:"Y년 m월 d일 H:i" }}</td>
            <td><a class="button" href="{% url 'poem_detail' poem.pk %}">보기</a></td>
        </tr>
        {% endfor %}
    </table>

    <br>
    <button type="submit">선택한 시로 EPUB 만들기 (준비 중)</button>
</form>

<p><a href="{% url 'upload_poem' %}">✍️ 시 쓰러 가기</a></p>

</body>
</html>

📌 주요 변경 내용 요약

항목 설명
테이블로 시 목록 정렬 제목 / 작가 / 날짜를 컬럼별로 정리
체크박스 추가 추후 EPUB 출간용 시 선택 기능을 위한 준비
보기 버튼 추가 시 전문 확인 페이지로 이동
폼 구조 추가 POST 방식으로 선택된 시를 서버에 전송 가능 (기능은 아직 구현 X)

✅ 다음 단계 예고

『10장. 선택한 시를 EPUB 파일로 변환하여 자동 출간하기』

  • 사용자가 체크박스로 시를 선택하고 “출간” 버튼을 누르면
    선택된 시를 하나의 .epub 전자책 파일로 생성하는 기능을 구현합니다.