2010-07-08 16 views
86

का उपयोग कर रहा बोतल और SQLAlchemy के लिए एक व्यवस्थापक के निर्माण कर रहा हूँ, और मैं render_template का उपयोग कर मेरे विचार करने के लिए विभिन्न आदानों के लिए HTML पास करना चाहते हैं टेम्पलेट के लिए HTML पासिंग। templating ढांचे स्वचालित रूप से एचटीएमएल से बचने के लिए लगता है, इसलिए सभी < " '> एचटीएमएल संस्थाओं के लिए बदल रहे हैं। मैं कैसे निष्क्रिय कर सकते हैं कि इतना है कि एचटीएमएल सही ढंग से renders?बोतल/Jinja2

उत्तर

177

आदर्श तरीका

{{ something|safe }} 

है ।

from flask import Markup 
value = Markup('<strong>The HTML String</strong>') 

फिर उस valu पारित: पूरी तरह से ऑटो एस्केपिंग को बंद करने से

+0

हाय @Armin Ronacher, आप कृपया अधिक समझाने और एक उदाहरण देना होगा? धन्यवाद। – Samoth

+0

मेरा मतलब है, उदाहरण के लिए, मेरे पास 'userHome.html' नामक एक फ़ाइल है, और मैं 'reend_template (' userHome.html ')' का उपयोग करना चाहता हूं, लेकिन यह सही ढंग से प्रस्तुत नहीं करता है और सभी ** एचटीएमएल इकाइयों में बदल जाते हैं ** मेरे क्रोम कंसोल में। – Samoth

+0

'ट्रांस' टैग में इसे '{% trans something = something | safe%} ए {{something}} बी {% endtrans%}' – Kangur

70

आप भी इसे एचटीएमएल कोड से सुरक्षित घोषित कर सकते हैं ई टेम्पलेट्स के लिए और उन्हें |safe नहीं है।

+0

क्या जिन्जा 2 में मार्कअप मौजूद है? – iamgopal

+3

मार्कअप एक जिन्जा 2 वर्ग है, हां। यह कई पाइथन पुस्तकालयों (दुर्भाग्य से Django नहीं) द्वारा समर्थित एक आम इंटरफ़ेस लागू करता है। आप मार्कअप सुरक्षित पैकेज का भी उपयोग कर सकते हैं जो एक ही ऑब्जेक्ट लागू करता है: http://pypi.python.org/pypi/MarkupSafe –

+0

कस्टम फ़िल्टर लिखने के लिए यह सबसे अच्छा है, जब फ़िल्टर को टेम्पलेट में कुछ मार्कअप पास करना होता है। – erjiang

7

जिंजा डॉक्स अनुभाग HTML Escaping से:

जब स्वत: एस्केपिंग सब कुछ सक्षम किया गया है मूल्यों को स्पष्ट रूप से के रूप में सुरक्षित के रूप में चिह्नित के अलावा डिफ़ॉल्ट से बच रहा है। वे या तो को या सुरक्षित फ़िल्टर का उपयोग करके एप्लिकेशन द्वारा या टेम्पलेट में चिह्नित कर सकते हैं।

उदाहरण:

<div class="info"> 
    {{data.email_content|safe}} 
</div> 
+1

http://jinja.pocoo.org/docs/dev/templates/#html-caping – Akairis