Saya sedang membangun admin untuk Flask dan SQLAlchemy, dan saya ingin melewatkan HTML untuk input yang berbeda untuk pandangan saya menggunakan render_template
. Kerangka templating tampaknya keluar dari html secara otomatis, jadi semua <"'> dikonversi ke entitas html. Bagaimana saya bisa menonaktifkannya sehingga HTML ditampilkan dengan benar?
163
userHome.html
, dan saya ingin menggunakannyareturn render_template('userHome.html')
, tetapi tidak merender dengan benar dan semua beralih ke entitas html di konsol chrome saya.trans
tag ini harus digunakan sebagai{% trans something=something|safe %}A {{something}} B{% endtrans %}
Anda juga dapat mendeklarasikannya sebagai HTML aman dari kode:
Kemudian berikan nilai itu ke template dan mereka tidak harus melakukannya
|safe
.sumber
Dari bagian jinja docs, HTML Escaping :
Contoh:
sumber
Saat Anda memiliki banyak variabel yang tidak perlu diloloskan, Anda dapat menggunakan
autoescape
blok:sumber
Beberapa orang tampaknya mematikan autoescape yang membawa risiko keamanan untuk memanipulasi tampilan string.
Jika Anda hanya ingin memasukkan beberapa linebreak ke dalam string dan mengkonversi linebreak menjadi
<br />
, maka Anda bisa mengambil makro jinja seperti:dan di templat Anda sebut saja ini dengan
sumber