42 Django 목록 페이지 만들기

42.1 Django 목록 페이지 등록 - urls.py

테스트로 입력했던 index.do 경로는 삭제하고
blogs라는 경로를 새롭게 추가합니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#myapp/blog/urls.py
from django.urls import path
from . import views

app_name = "blog"

urlpatterns = [    
    # path("index.do", views.index.as_view(), name="main"), 
    path("", views.firstIndex.as_view(), name="first_index"),
    path('blogs/', views.blogList.as_view(), name='pb_list'),   

]

42.2 Django 목록 페이지 등록 - view.py

blogList 클래스를 추가합니다.

blogList ListView뷰는 명시된 모델(PyBlog)의 모든 데이터를 조회하여 가져옵니다.

조회 된 데이터는 템플릿으로 넘기게 되며,

테플릿은 이름은 모델명_list.html으로 찾게 됩니다.

1
2
3
4
5
#myapp/blog/views.py


class blogList(generic.ListView):
    model = PyBlog

42.3 Django 목록 페이지 등록 - list.html

templates/blog/ 밑에 PyBlog_list.html(모델명_list.html) 을 신규로 생성합니다.

템플릿 안에서 object_list 로 데이터를 조회할 수 있습니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<!-- templates/blog/PyBlog_list.html -->
{% extends "base/base.html" %}
{% block content %}
<div class="container-fluid">
    <h1 class="mt-4">Python Blogs</h1>

     <div class="row">
        <div class="col-xl-8">
            <div class="card mb-4">
            {% for list in object_list %}  
                <div class="card-header">                   
                    <p><a href="#">{{list.title}}</a></p>
                </div>
            {% endfor %}              
            </div>
        </div>
    </div>
</div>
{% endblock %}

42.브라우저로 blogs 목록 페이지 접속해보기

목록이 잘 나오네요.^__^