Django View에서 HTML 태그 넣어보기 - 8

2023. 2. 27. 22:37·Develop/Django
728x90
SMALL

간단하게 HTML 태그를 넣어서 HttpResponse가 가능하다.

 

1) formating을 통해 <h1></h1>를 넣어준다.

def monthly_challenge(request, month):
    response = monthly_case.get(month)
    response_data = f"<h1>{response}</h1>"
    if response:
        return HttpResponse(response_data)
    return HttpResponseNotFound(f"<h1>Not month</h1>")

h1는 제목 태그로 텍스트를 제목 형식으로 변경해 준다.

기존의 받은 데이터가 크기가 커지고 굵어진 것을 볼 수 있다.

 

2) 새롭게 index 함수를 생성한다.

def index(request):
    response_data = """
        <ul>
            <li>
                <a href="/challenges/january">
                    January
                </a>
            </li>
        </ul>
    """
    return HttpResponse()

각 달의 리스트를 위한 HTML을 구성했고 하지만, url이 하드코딩으로 박혀있다.

이런 경우는 모든 달을 일일이 넣어줘야 하는 경우가 생긴다.

 

3) 하드 코딩 부분을 수정해보자.

def index(request):
    list_items = ""
    monthly_case_key = list(monthly_case.keys())

    for month in monthly_case_key:
        capitalized_month = month.capitalize()
        redirect_path = reverse("month-challenge", args=[month])
        list_items += f"<li><a href='{redirect_path}'>{capitalized_month}</a></li>"

    response_data = f"<ul>{list_items}</ul>"
    return HttpResponse(response_data)

capitalize는 첫 글자만 대문자로 변환하는 함수이다.

redirect_path는 month-challenge를 name으로 가진 url로 args에 [month]에 들어가는 url을 들고 온다.

list_items는 HTML형식에 맞게 모든 달이 붙여진다.

마지막으로 리스트 형식으로 모든 달의 url을 호출한다.

 

4) challenges 폴더의 urls.py를 수정한다.

urlpatterns = [
    path("", views.index),
    path("<int:month>", views.monthly_challenge_by_number),
    path("<str:month>", views.monthly_challenge, name="month-challenge")
]

 

5) 화면을 확인했을 때 링크가 걸려 잘 나오는 것을 확인할 수 있다.

http://127.0.0.1:8000/challenges/

728x90
SMALL
저작자표시 비영리 (새창열림)

'Develop > Django' 카테고리의 다른 글

Django 프로젝트를 위한 Docker 환경 구성 가이드  (0) 2023.04.16
Django (페이징 뷰) 검색 페이지 기능 구현하기  (0) 2023.03.24
Django URL reverse / URL name - 7  (0) 2023.02.27
Django 리다이렉트(Redirect) - 6  (0) 2023.02.26
Django 동적 URL 패턴 로직 추가- 5  (0) 2023.02.26
'Develop/Django' 카테고리의 다른 글
  • Django 프로젝트를 위한 Docker 환경 구성 가이드
  • Django (페이징 뷰) 검색 페이지 기능 구현하기
  • Django URL reverse / URL name - 7
  • Django 리다이렉트(Redirect) - 6
동석해요
동석해요
공부하고 싶은게 많은, 사소한 IT 지식들 공유
    250x250
  • 동석해요
    개발로 자기계발
    동석해요
  • 전체
    오늘
    어제
    • 분류 전체보기 (226)
      • Develop (126)
        • 기초지식 (12)
        • FastAPI (102)
        • Django (11)
      • Database & Data (62)
        • 기초지식 (16)
        • MySQL (29)
        • PostgreSQL (8)
        • 데이터 분석 (9)
      • 인공지능 (11)
        • PyTorch (9)
      • Cloud (8)
        • AWS (4)
        • GCP (2)
      • 버그처리 (14)
      • 회고 & 일상 (5)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
동석해요
Django View에서 HTML 태그 넣어보기 - 8
상단으로

티스토리툴바