답변:
이상적인 방법은
{{ something|safe }}
자동 이스케이프 기능을 완전히 끄는 것보다
userHome.html
사용 return render_template('userHome.html')
하고 싶지만 올바르게 렌더링되지 않고 모든 것이 크롬 콘솔에서 html 엔티티 로 바뀝니다 .
trans
태그이 사용되어야한다{% trans something=something|safe %}A {{something}} B{% endtrans %}
코드에서 HTML로 안전하게 선언 할 수도 있습니다.
from flask import Markup
value = Markup('<strong>The HTML String</strong>')
그런 다음 해당 값을 템플릿에 전달하면 필요하지 않습니다 |safe
.
jinja 문서 섹션 HTML 이스케이프에서 :
자동 이스케이프가 활성화되면 명시 적으로 안전한 것으로 표시된 값을 제외하고 모든 것이 기본적으로 이스케이프됩니다. 이들은 안전 필터를 사용하여 응용 프로그램 또는 템플리트에서 표시 할 수 있습니다.
예:
<div class="info">
{{data.email_content|safe}}
</div>
어떤 사람들은 문자열 표시를 조작하기 위해 보안 위험 을 수반하는 자동 이스케이프 기능을 끄는 것 같습니다 .
문자열에 줄 바꿈 만 삽입하고 줄 바꿈을로 변환하려면 jinja 매크로를 사용할 <br />
수 있습니다 .
{% macro linebreaks_for_string( the_string ) -%}
{% if the_string %}
{% for line in the_string.split('\n') %}
<br />
{{ line }}
{% endfor %}
{% else %}
{{ the_string }}
{% endif %}
{%- endmacro %}
템플릿 에서 다음을 호출하십시오.
{{ linebreaks_for_string( my_string_in_a_variable ) }}