2016-07-20 2 views
2

보기에서 정적 URL을 사용하여 이미지를 생성 한 다음 템플릿에 렌더링하고 싶습니다. 나는 mark_safe을 사용하여 HTML이 이스케이프되지 않도록합니다. 그러나 이미지를 렌더링하지는 않습니다. 어떻게 파이썬에서 이미지 태그를 생성합니까?템플릿 대신보기에서 장고 정적 URL을 사용하여 이미지 태그 생성

from django.shortcuts import render 
from django.utils.safestring import mark_safe 

def check(request): 
    html = mark_safe('<img src="{% static "brand.png" %}" />') 
    return render(request, "check.html", {"image": html}) 

템플릿에서 렌더링 :

{{ image }} 

는 URL을 생성하지 않고 img 태그를 렌더링 : 템플릿 지시문을 포함,

<img src="{% static "brand.png" %} /> 
+0

왜 html 부분에서 정적 파일을 호출하지 않습니까? – JazZ

답변

6

당신은 문자열을 표시 한을, 안전 . 그러나 템플릿은 한 번에 렌더링됩니다. 해당 문자열을 렌더링하면 렌더링 된 문자열에있는 지시문을 렌더링하지 않습니다. 템플릿 지시문을 사용하지 않고 generate the static url해야합니다.

from django.contrib.staticfiles.templatetags.staticfiles import static 

url = static('images/deal/deal-brand.png') 
img = mark_safe('<img src="{url}">'.format(url=url))