Django 프론트& 백엔드 개발

Django의 get_static_prefix 개념

Data Jun 2026. 1. 4. 12:44

Django에서는
URL → View → Template 흐름을 통해
텍스트뿐 아니라 이미지 경로까지 동적으로 렌더링할 수 있습니다.

 

1. View에서 데이터 구성하기

def food_detail(request, food):
    context = {}

    if food == "chicken":
        context["name"] = "코딩에 빠진 닭"
        context["description"] = "주머니가 가벼운 당신의 마음까지 생각한 가격!"
        context["price"] = 10000
        context["img_path"] = "foods/images/chicken.jpg"

    return render(request, "foods/detail.html", context)
  • URL에서 전달받은 food 값으로 분기
  • 화면에 필요한 데이터를 context에 담아 전달
  • 이미지 경로도 문자열 데이터로 함께 전달

핵심:

이미지도 데이터다 → view에서 결정한다

 

2. Template에서 데이터 출력하기

{% load static %}

<h2>{{ name }}</h2>
<div>{{ description }}</div>
<p>{{ price }} 원</p>
<img src="{% get_static_prefix %}{{ img_path }}" />
  • {{ name }}, {{ description }} → 텍스트 데이터 출력
  • img_path는 static 경로 하위 파일명만 전달
  • {% get_static_prefix %}로 static 기본 경로를 앞에 붙임

결과적으로 브라우저에서는 다음처럼 해석됩니다.

<img src="/static/foods/images/chicken.jpg">

 

3. 왜 get_static_prefix를 사용할까?

{% static "foods/images/chicken.jpg" %}

경로가 고정될 때 사용하고,

{% get_static_prefix %}{{ img_path }}

경로 일부가 동적일 때

즉,

  • 이미지가 하나뿐이면 → {% static %}
  • 이미지가 여러 개고 view에서 결정되면 → get_static_prefix

사용합니다.

 

4. 정리하면

  • URL 값 → view로 전달
  • view에서 데이터 + 이미지 경로 결정
  • template에서 {{ 변수 }}로 출력
  • static 이미지도 동적으로 렌더링 가능

 “HTML은 그대로지만
 들어가는 데이터가 바뀌면서 화면이 달라진다”