IT

Flask / Jinja2를 사용하여 HTML을 템플릿으로 전달

lottoking 2020. 6. 22. 07:30
반응형

Flask / Jinja2를 사용하여 HTML을 템플릿으로 전달


Flask 및 SQLAlchemy에 대한 관리자를 구축 중이며을 사용하여 다른 입력에 대한 HTML을 내보기에 전달하고 싶습니다 render_template. 템플릿 프레임 워크는 html을 자동으로 이스케이프 처리하는 것처럼 보이므로 모든 < " '>가 html 엔터티로 변환됩니다. HTML을 올바르게 렌더링하도록 비활성화하려면 어떻게해야합니까?


이상적인 방법은

{{ something|safe }}

자동 이스케이프 기능을 완전히 끄는 것보다


코드에서 HTML로 안전하게 선언 할 수도 있습니다.

from flask import Markup
value = Markup('<strong>The HTML String</strong>')

그런 다음 해당 값을 템플릿에 전달하면 필요하지 않습니다 |safe.


jinja 문서 섹션 HTML 이스케이프에서 :

자동 이스케이프가 활성화되면 명시 적으로 안전한 것으로 표시된 값을 제외한 모든 것이 기본적으로 이스케이프됩니다. 이들은 안전 필터를 사용하여 응용 프로그램 또는 템플리트에서 표시 할 수 있습니다.

예:

 <div class="info">
   {{data.email_content|safe}}
 </div>

이스케이프 처리 할 필요가없는 변수가 많은 경우 autoescape블록을 사용할 수 있습니다 .

{% autoescape off %}
{{ something }}
{{ something_else }}
<b>{{ something_important }}</b>
{% endautoescape %}

참고 URL : https://stackoverflow.com/questions/3206344/passing-html-to-template-using-flask-jinja2

반응형