Menu
CoddyTech

데이터베이스에서 목록 가져오기

Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 13번째.

홈 페이지에는 여전히 뷰에 직접 입력한 제목 세 개가 표시됩니다. 뷰는 페이지에 필요한 데이터를 가져오는 곳입니다. ORM에 행을 요청하고 QuerySet을 템플릿에 전달하는데, 이전에 목록을 전달했던 것과 같은 방식입니다. 아직 읽지 않은 책을 보여 주는 페이지는 다음과 같습니다.

from django.shortcuts import render

from .models import Book


def to_read(request):
    books = Book.objects.filter(is_read=False)
    return render(request, "books/to_read.html", {"books": books})

from .models의 점은 이 앱의 폴더를 의미합니다. 템플릿에서 반복문의 각 항목은 Book이므로 {{ book.title }}과 {{ book.price }}는 해당 필드를 읽고, {{ book }}만 있으면 __str__을 출력합니다.

challenge icon

챌린지

쉬움

홈 페이지에 실제 책 목록이 표시되도록 하세요.

  1. books/views.py에서 템플릿에 데이터베이스의 모든 책을 books로 전달하고, 직접 입력한 목록을 대신 사용하세요.
  2. home.html에서 각 책의 제목과 연도를 괄호 안에 표시하세요. 예를 들면 Dune (1965)와 같습니다.

Shell 탭에서 Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00")를 입력하고 /을 새로고침하세요. 목록 맨 앞에 Beloved (1987)이 표시됩니다.

직접 해보기

from django.shortcuts import render


def home(request):
    books = ["Dune", "Emma", "The Hobbit"]
    return render(request, "books/home.html", {"books": books})

모델과 관리자의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드