프로젝트

📌 Django를 이용한 구구단 웹 페이지 만들기

Chansman 2025. 4. 30. 03:19

📌 Django를 이용한 구구단 웹 페이지 만들기

이번 글에서는 Django를 이용하여 간단한 구구단 웹 페이지를 만드는 과정을 코드와 함께 살펴보겠습니다.


🔹 프로젝트 구성

  • urls.py: URL 요청을 처리하고, 적절한 뷰 함수를 연결합니다.
  • gugu.html: Django 템플릿을 사용하여 구구단을 출력하는 페이지입니다.

🚩 urls.py 코드 설명

from django.contrib import admin
from django.urls import path
from django.shortcuts import render, redirect

# 구구단 처리 뷰 함수

def gugu(request, num):
    # num 값이 2 미만이면 '/gugu/2/'로 리다이렉트
    if num < 2:
        return redirect('/gugu/2/')

    # context에 현재 단수와 결과를 리스트 컴프리헨션으로 담아 템플릿에 전달
    context = {
        'dan': num,
        'results': [num * i for i in range(1, 10)]
    }
    return render(request, 'gugu.html', context)

# 구구단 다른 방식 처리 뷰 함수

def dudu(request, num):
    # 각 곱셈의 결과를 튜플로 담아 템플릿에 전달
    context = {
        'dudu': num,
        'resultss': [(i, num * i) for i in range(1, 10)]
    }
    return render(request, 'gugu.html', context)

# URL 패턴 정의
urlpatterns = [
    path('gugu/<int:num>/', gugu),
    path('dudu/<int:num>/', dudu),
]
  • 리다이렉트 처리: 사용자가 URL로 전달한 숫자가 2 미만일 경우, 구구단 2단 페이지로 자동으로 이동됩니다.
  • 리스트 컴프리헨션: 구구단 결과를 한 번에 계산하여 context로 전달합니다.

🚩 gugu.html 코드 설명

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>구구단 페이지</title>
</head>

<body>
    {% if dan %}
        <h1>{{ dan }}단</h1>
        {% for result in results %}
            <p>{{ dan }} x {{ forloop.counter }} = {{ result }}</p>
        {% endfor %}
    {% endif %}

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

    {# 사용하지 않는 코드 부분 주석 처리 #}
</body>
</html>
  • **조건문(if)**을 사용해 dan 혹은 dudu가 존재하는 경우에만 HTML 태그를 렌더링합니다.
  • forloop.counter: Django 템플릿이 제공하는 반복문의 현재 인덱스를 출력하는 변수입니다.

🚀 실제 실행 예시

  • /gugu/3/으로 접속하면 3단이 출력됩니다.
  • /dudu/4/로 접속하면 4단이 출력됩니다.
  • /gugu/1/로 접속하면 자동으로 /gugu/2/로 리다이렉트 됩니다.

이상으로 Django를 사용하여 간단한 구구단 페이지를 만드는 과정을 살펴보았습니다. 다양한 방법으로 확장하여 활용해보세요! 😊