Flask ve SQLAlchemy için bir yönetici yapıyorum ve farklı girişler için HTML'yi render_template
kullanarak görünümüme iletmek istiyorum. çiftleşmiş çerçeve nedenle tüm < "'> html varlıklar dönüştürülür. Nasıl bu kadar HTML doğru bir şekilde gösterildiğinden devre dışı bırakabilir, otomatik html kaçmak görünüyor?Flask/Jinja2'yi kullanarak HTML'yi şablona geçirme
cevap
ideal yolu
{{ something|safe }}
etmektir
from flask import Markup
value = Markup('<strong>The HTML String</strong>')
Sonra bu valu pass:
Ayrıca kodundan HTML güvenli ilan edebilir tamamen otomatik önceleniminin kapatarak daha. Şablonlara e ve |safe
'a sahip değiller. jinja dokümanlar bölümünden HTML Escaping itibaren
jinja2'de işaretleme var mı? – iamgopal
İşaretleme bir Jinja2 sınıfı, evet. Birçok python kütüphanesi tarafından desteklenen ortak bir arayüz uygular (maalesef Django değil). Aynı nesneyi uygulayan biçimlendirme güvenli paketini de kullanabilirsiniz: http://pypi.python.org/pypi/MarkupSafe –
Bu, filtrenin şablona bazı işaretlemeleri iletmesi gerektiğinde, özel filtreler yazmak için en iyisidir. – erjiang
:
otomatik kaçış herşeyi etkindiraçıkça güvenli olarak işaretlenmiş değerler dışında varsayılan kaçtı edilir. Bunlar, uygulama tarafından işaretlenen veya şablonda | safe filtresi kullanılarak olabilir.
Örnek:
<div class="info">
{{data.email_content|safe}}
</div>
http://jinja.pocoo.org/docs/dev/templates/#html-escaping – Akairis
hi @Armin Ronacher, daha açıklamak ve bir örnek vermek misiniz? Teşekkürler. – Samoth
Örneğin, “userHome.html” adlı bir dosyam var ve ben return render_template ('userHome.html') 'ifadesini kullanmak istiyorum, ancak doğru şekilde oluşturmuyor ve hepsi de html varlıklarına dönüşüyor ** krom konsolumda. – Samoth
'trans' etiketinde bu, {% trans something = bir şey | safe%} A {{something}} B {% endtrans%}' – Kangur