🧠 Django 함수형 뷰 bookmark_list() 완벽 해석 – context의 역할은?

2025. 4. 30. 19:07·기술블로그

🧠 Django 함수형 뷰 bookmark_list() 완벽 해석 – context의 역할은?


✅ 목표 코드

def bookmark_list(request):
    bookmarks = Bookmark.objects.all()  # SELECT * FROM bookmark
    context = {'bookmarks': bookmarks}
    return render(request, 'bookmark_list.html', context)

이 코드는 Django에서 모델 데이터를 가져와 HTML 템플릿에 전달하는 기본적인 리스트 뷰입니다.


✅ 한 줄씩 흐름 해설

🔹 1. bookmarks = Bookmark.objects.all()

  • Bookmark 모델의 전체 데이터를 가져옵니다
  • 실제 SQL로 보면:
  • SELECT * FROM bookmark;
  • 결과는 QuerySet 형태이며 반복 가능한 리스트처럼 사용됩니다

🔹 2. context = {'bookmarks': bookmarks}

  • 데이터를 템플릿에 넘겨주기 위한 딕셔너리로 구성합니다
  • 'bookmarks'는 템플릿에서 사용할 변수 이름
  • bookmarks는 위에서 조회한 실제 데이터(QuerySet)

📌 여기서 context는 HTML 템플릿으로 전달될 데이터 묶음 그릇 역할입니다

🔹 3. return render(request, 'bookmark_list.html', context)

  • 'bookmark_list.html' 템플릿을 불러옵니다
  • context에 담긴 데이터를 함께 넘깁니다
  • 최종적으로 HTML 페이지를 만들어 브라우저에 전달합니다

✅ context를 굳이 쓰는 이유는?

이유 설명

명확한 데이터 전달 템플릿에서 사용할 데이터를 보기 좋게 묶어줌
다중 데이터 전달 가능 여러 값을 동시에 넘기기 편리함
코드 유지보수성 향상 어떤 데이터를 템플릿에 보내는지 명확히 보여줌

예시:

context = {
  'bookmarks': bookmarks,
  'username': request.user.username,
  'is_admin': request.user.is_staff,
}

✅ 템플릿에서의 활용 예시

{% for bookmark in bookmarks %}
  <p>{{ bookmark.name }}</p>
{% endfor %}

→ 위 코드는 context에 담긴 bookmarks를 템플릿에서 반복해 출력하는 예입니다.


✅ 비유로 쉽게 이해하면?

context는 템플릿에게 건네주는 데이터 가방 🎒입니다. HTML 템플릿은 그 가방을 열어 bookmarks, username 등의 데이터를 꺼내 씁니다.


✅ 마무리 요약

  • context는 템플릿에 데이터를 전달하는 딕셔너리
  • render() 함수에서 HTML 템플릿과 함께 사용됨
  • 가독성과 확장성 높은 코드 작성을 위한 필수 요소입니다

지금처럼 잘 익혀두면 Django 뷰와 템플릿 사이의 연결 흐름이 완전히 이해됩니다! 💪

'기술블로그' 카테고리의 다른 글

📁 Django 프로젝트 다중 폴더 구성과 Git 브랜치 관리 방법  (0) 2025.04.30
📘 Django ORM 핵심 요약 정리: 데이터 조회, 생성, 수정, 삭제 실습 가이드  (0) 2025.04.30
🧠 WSL에서 SQLite 한글 깨짐 해결하기 – 한글 폰트 설치부터 설정까지  (0) 2025.04.30
🧠 Django 모델에서 __str__() 메서드 완벽 정리 – 왜 쓰고 어떻게 작동하나?  (0) 2025.04.30
🧠 WSL에서 SQLite GUI 도구(sqlitebrowser) 설치 및 실행 방법 완전 정복  (0) 2025.04.30
'기술블로그' 카테고리의 다른 글
  • 📁 Django 프로젝트 다중 폴더 구성과 Git 브랜치 관리 방법
  • 📘 Django ORM 핵심 요약 정리: 데이터 조회, 생성, 수정, 삭제 실습 가이드
  • 🧠 WSL에서 SQLite 한글 깨짐 해결하기 – 한글 폰트 설치부터 설정까지
  • 🧠 Django 모델에서 __str__() 메서드 완벽 정리 – 왜 쓰고 어떻게 작동하나?
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (502) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (9)
      • 특강 (18)
      • 기술블로그 (143) N
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (44) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
🧠 Django 함수형 뷰 bookmark_list() 완벽 해석 – context의 역할은?
상단으로

티스토리툴바