Django 템플릿 for문 완전 정복: 리스트 컴프리헨션(튜플형태) + 템플릿 반복문 해석

2025. 4. 30. 02:48·기술블로그-Django편
목차
  1. ✅ Django 템플릿 for문 완전 정복: 리스트 컴프리헨션 + 템플릿 반복문 해석
  2. 📌 핵심 키워드 요약
  3. 🚀 1️⃣ Python 코드 해석: [(i, num * i) for i in range(1, 10)]
  4. 🔥 2️⃣ Django 템플릿 코드 해석
  5. 📚 주의할 점
  6. 🎯 최종 요약

✅ Django 템플릿 for문 완전 정복: 리스트 컴프리헨션 + 템플릿 반복문 해석


📌 핵심 키워드 요약

핵심 키워드 설명

리스트 컴프리헨션 리스트를 한 줄로 생성하는 문법 ([(i, num*i) for i in range(1,10)])
튜플(tuple) (a, b) 형태로 2개 이상의 값을 묶는 데이터 구조
Django 템플릿 for문 리스트나 튜플을 반복하면서 데이터를 출력하는 구조

🚀 1️⃣ Python 코드 해석: [(i, num * i) for i in range(1, 10)]

'resultss': [(i, num * i) for i in range(1, 10)]

✔️ 코드 해석

  • range(1, 10) : 1부터 9까지 숫자를 반복.
  • i : 현재 반복하는 숫자.
  • num * i : num(단수)와 현재 숫자 i를 곱한 결과.
  • (i, num*i)를 튜플로 만들어 리스트에 추가.

✔️ 예시 (num=3일 때)

resultss = [(1, 3), (2, 6), (3, 9), (4, 12), (5, 15), (6, 18), (7, 21), (8, 24), (9, 27)]

i 값 결과(result)

1 3
2 6
3 9
... ...
9 27

이 리스트는 구구단 3단 결과를 (곱하는 수, 결과) 형태로 정리한 것이다.


🔥 2️⃣ Django 템플릿 코드 해석

{% if dudu %}
    <h1>{{ dudu }}단</h1>
    {% for i, result in resultss %}
        <p>{{ dudu }} x {{ i }} = {{ result }}</p>
    {% endfor %}
{% endif %}

✔️ 코드 흐름

  • {% if dudu %} : dudu라는 값이 존재할 때만 내용을 출력.
  • <h1>{{ dudu }}단</h1> : 예를 들어 dudu=3이면 "3단"을 제목으로 표시.
  • {% for i, result in resultss %} :
    • resultss 리스트 안에 있는 튜플 하나씩 꺼냄.
    • i = 곱하는 수, result = 결과값.
  • <p>{{ dudu }} x {{ i }} = {{ result }}</p> : 구구단 형식으로 출력.

{% for i, result in resultss %}는 resultss 리스트 안에 있는 (i, result) 튜플을 하나씩 꺼내서 i, result에 각각 나눠 담는 것!

 

만약 resultss가 이렇게 되어 있다면:

resultss = [
    (1, 2),
    (2, 4),
    (3, 6)
]
 

그럼 템플릿에서는:

반복                                                                                                           i값                                 result 값

 

1회차 1 2
2회차 2 4
3회차 3 6

이렇게 하나씩 나눠서 담아주는거야!

 

✔️ 실전 예시

만약 dudu = 3, resultss = [(1, 3), (2, 6), (3, 9), ...] 라면:

<h1>3단</h1>
<p>3 x 1 = 3</p>
<p>3 x 2 = 6</p>
<p>3 x 3 = 9</p>
...
<p>3 x 9 = 27</p>

이렇게 출력된다!


📚 주의할 점

  • 튜플의 순서가 중요하다!
    • (i, result)로 넘겨야 for i, result가 정상 작동한다.
    • (3,1) 이런 식으로 넘기면 출력이 꼬인다 (튜플 통째로 출력됨).
  • 서버에서 넘길 때 정확한 형태로 넘겨야 템플릿이 제대로 렌더링된다.

🎯 최종 요약

[(i, num*i) for i in range(1, 10)]는 구구단 리스트를 만들고, Django 템플릿의 {% for i, result in resultss %} 문법은 그 리스트를 깔끔하게 반복 출력한다!

✅ 리스트 컴프리헨션과 Django 템플릿 for문을 조합하면 구구단 출력처럼 반복적인 데이터도 쉽게 화면에 출력할 수 있다!


📌 이 방식은 구구단 뿐 아니라, 게시판 목록, 상품 리스트, 영화 목록 출력 등 다양한 곳에 활용할 수 있다! 🚀

 

range 와 widthratio 활용 하여 아래처럼도 가능하다.

def dudu(request, num):
    context = {
        'dudu' : num,
        'range' : range(1,10)
    }
    return render(request, 'gugu.html', context)

 

  {% if dudu %}
        <h1>{{ dudu }}단</h1>
        {% for i in range %}
            <p>{{ dudu }} x {{ i }} = {% widthratio num 1 i %}</p>
{#             num / 1 * i #}
        {% endfor %}
    {% endif %}

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

📝 Django 모델 클래스 상속 개념 쉽게 이해하기  (0) 2025.04.30
📚 Github와 레포지토리 연결 및 git push (Pycharm,Django)  (0) 2025.04.30
📝 파이썬 리스트 컴프리헨션 활용: 구구단 생성하기  (0) 2025.04.30
📌 Django URL 설정 및 템플릿 활용하기  (0) 2025.04.30
🔁 Django 전체 흐름 ( views, urls(route), models, templates)  (0) 2025.04.29
  1. ✅ Django 템플릿 for문 완전 정복: 리스트 컴프리헨션 + 템플릿 반복문 해석
  2. 📌 핵심 키워드 요약
  3. 🚀 1️⃣ Python 코드 해석: [(i, num * i) for i in range(1, 10)]
  4. 🔥 2️⃣ Django 템플릿 코드 해석
  5. 📚 주의할 점
  6. 🎯 최종 요약
'기술블로그-Django편' 카테고리의 다른 글
  • 📝 Django 모델 클래스 상속 개념 쉽게 이해하기
  • 📚 Github와 레포지토리 연결 및 git push (Pycharm,Django)
  • 📝 파이썬 리스트 컴프리헨션 활용: 구구단 생성하기
  • 📌 Django URL 설정 및 템플릿 활용하기
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
찬스맨의 프로그래밍 스토리안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (772) N
      • Python (32)
      • 프로젝트 (95) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    self-growth
    youngprofessionals
    뷔
    btsdischarge
    basalcellcarcinoma
    btsjungkook
    lawsuitculture
    bts
    hotcoffeecase
    btsreunion
    trumpmuskclash
    college reunions
    global politics
    chatgpterror
    btscomeback
    chinanightlife
    urbantrends
    titaniumcase
    americaparty
    homebartrend
    travel ban
    life reflection
    livebroadcast
    americanlaw
    classaction
    gpterror
    RM
    remittance
    smartphonedurability
    newpoliticalparty
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Django 템플릿 for문 완전 정복: 리스트 컴프리헨션(튜플형태) + 템플릿 반복문 해석

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.