在一個旨在支持多語言的基本 Flask 網站中,我想對特定的單詞或運算式應用一種樣式。為了處理多語言,我使用了flask_babelex 和tokenize。
from tokenize import u
from flask_babelex import gettext
page_title = gettext(u'The best potatoes in the world!')
在模板中,我會有這個:
<h2>{{ page_title }}</h2>
它將以這種方式呈現:
<h2>The best potatoes in the world!</h2>
為了應用適當的造型效果,我希望“土豆”這個詞在一個跨度內。
<h2>The best <span>potatoes</span> in the world!</h2>
在 page_title 定義字串中包含跨度不起作用。它似乎已經過清理,并且 html 顯示為字串的一部分而不是被解釋。一個簡單的 javascipt 函式將無法在呈現的頁面中定位單詞,因為單詞會隨著不同的語言(例如 patatas)而改變。我想可以創建一個包含占位符并在渲染時完成的復雜 javascript 函式,但是......我希望有一種更簡單的方法來實作這一點。
在原始字串中包含 HTML 或在 Jinja2 模板或任何其他建議中包含要替換的占位符的最佳方法是什么?
uj5u.com熱心網友回復:
您可以將內容標記為| safe避免 HTML 被轉義:
{{ page_title | safe }}
假設您不讓用戶為其他可以作業的用戶插入內容。
另一種選擇是對要插入的標簽使用占位符,例如:
{{ _('The best %(start_tag)spotatoes%(end_tag)s in the world!', start_tag='<span>', end_tag='</span>') | safe }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/368786.html
上一篇:登錄表單燒瓶失敗
