2012-09-09 31 views
12

{{ something.render() | safe }} gibi bir ifadenin ne anlama geldiğini anlamakta biraz sorunum var.Jinja 2 güvenli anahtar kelime

Gördüğüm kadarıyla, safe anahtar sözcüğü olmadan, yalnızca gerçek içeriği değil, tüm html belgesini çıkarır.

Bilmek istediğim şey, aslında ne yaptığı, nasıl işlediği.

cevap

12

safe filtresi, bir dizeyi "güvenli" olarak işaretler; yani, otomatik çıkış özelliği etkinleştirilmişse otomatik olarak çıkış yapılmamalıdır.

Bu filtre belgesi here'dir.

Kaçış için hangi karakterlerin uygun olduğunu görmek için numaralı bölüme bakın.

15

Normal olarak metin, HTML çıkış karakterli (bu nedenle <b>, <b> olarak ortaya çıkacak şekilde &lt;b&gt; olarak yazılır).

Bir şeyden sonra |safe'u yerleştirdiğinizde, şablon motoruna sizden daha önce metinden kaçtığınızı, yani "bunu doğrudan oluşturmak için güvenli" olduğunu söylüyorsunuz. Yani sizin için kodlama yapmayacaktır. Daha fazla bilgi için

: programlı güvenliği filtresi kullanmak isteyen buraya gelen herkes için http://jinja.pocoo.org/docs/templates/#html-escaping

4

: Bu jinja2 bağlıdır hangi bir markupsafe.Markup sınıf içinde sarın.

İlgili konular