당신은 멋쟁이, 우리는 장고쟁이~

0%

TodoList 6편 - 리스트 페이지 만들기

Todo 리스트가 출력될 화면을 만들어 볼겁니다.


현재까지는, 서버를 실행하고, 브라우저로 접속하면, 아래와 같은 화면이 뜹니다.




Todo리스트를 화면에 출력해줄 View 작성하기


현재 데이터베이스에는, Todo List 두개가 추가 되어 있습니다. (수동으로 생성해줌)


이것을 화면에 뿌려줄 페이지가 필요한데, 페이지에 화면을 출력해 주기 위해서는,


이를 처리하는 함수나 클래스가 필요합니다.


이 함수나 클래스들은, todo/views.py 파일에 작성 합니다. 이를 클래스뷰를 사용하여 진행해 봅니다.


todo/views.py 파일을 아래와 같이 작성해 줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
from django.shortcuts import render
from .models import TodoList, TodoList_files, TodoList_images
from django.views import generic

# Create your views here.


class IndexView(generic.ListView):
context_object_name = 'to_do_list'
template_name = 'todo/todo-lists.html'

def get_queryset(self):
return TodoList.objects.all()


View 를 통해 그려줄 페이지 (템플릿) 생성


todo/templates/todo/ 폴더를 생성한 후에,


폴더 안에, todo-lists.html 파일을 생성하고, 아래와 같이 작성해 줍니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ul>
{% for todo in to_do_list %}
# to_do_list 는 클래스에서 지정된 객체 리스트, context_object_name 에 지정된 값
# 이 객체에는, 모든 TodoList 를 포함한, TodoList.objects.all() 을 포함
# def get_queryset(self) 를 통해서 객체를 포함함

<li>할일 제목 : {{ todo.name }}</li>
<li>생성 날짜 : {{ todo.date_created }}</li>
<li>데드라인 날짜 : {{ todo.date_deadline }}</li>
<li>남은 일수 : {{ todo.remaining_days }}</li>

{% endfor %}

</ul>


요청을 보낼 URL 설정



todo/urls.py 파일을 설정해 줍니다


1
2
3
4
5
6
7
8
from django.contrib import admin 
from django.urls import path
from .views import IndexView


urlpatterns = [
path('', IndexView.as_view(), name='todolist'),
]

config/urls.py 파일에서, todo/urls.py 파일을 연결해 줍니다.


1
2
3
4
5
6
7
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('todo/', include('todo.urls')),
]



투두리스트 화면 확인하기



python manage.py runserver 를 실행하여, 서버를 시작한 후에,

http://127.0.0.1:8000/todo/ 에 접속합니다.


view 에서 투두리스트를 작업하여, 화면에 그려주고 있다는것을 확인할수 있습니다