回答:
理想的な方法は
{{ something|safe }}
自動エスケープを完全にオフにするよりも。
userHome.html
、を使用したいのですがreturn render_template('userHome.html')
、正しくレンダリングされず、すべてがchromeコンソールでhtmlエンティティに変わります。
trans
タグこれは、として使用する必要がある{% trans something=something|safe %}A {{something}} B{% endtrans %}
コードからHTMLセーフとして宣言することもできます。
from flask import Markup
value = Markup('<strong>The HTML String</strong>')
次に、その値をテンプレートに渡します。テンプレートに渡す必要はありません|safe
。
jinja docsセクションのHTMLエスケープから:
自動エスケープが有効になっている場合、安全と明示的にマークされた値を除いて、すべてがデフォルトでエスケープされます。これらは、アプリケーションでマークするか、テンプレートで安全フィルターを使用してマークできます。
例:
<div class="info">
{{data.email_content|safe}}
</div>
一部の人々は文字列の表示を操作するためのセキュリティリスクを伴う自動エスケープをオフにしているようです。
いくつかの改行を文字列に挿入し、改行をに変換するだけの場合は<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 ) }}