🧠 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 |