का उपयोग कर रहा बोतल और SQLAlchemy के लिए एक व्यवस्थापक के निर्माण कर रहा हूँ, और मैं render_template
का उपयोग कर मेरे विचार करने के लिए विभिन्न आदानों के लिए HTML पास करना चाहते हैं टेम्पलेट के लिए HTML पासिंग। templating ढांचे स्वचालित रूप से एचटीएमएल से बचने के लिए लगता है, इसलिए सभी < " '> एचटीएमएल संस्थाओं के लिए बदल रहे हैं। मैं कैसे निष्क्रिय कर सकते हैं कि इतना है कि एचटीएमएल सही ढंग से renders?बोतल/Jinja2
उत्तर
आदर्श तरीका
{{ something|safe }}
है ।
from flask import Markup
value = Markup('<strong>The HTML String</strong>')
फिर उस valu पारित: पूरी तरह से ऑटो एस्केपिंग को बंद करने से
आप भी इसे एचटीएमएल कोड से सुरक्षित घोषित कर सकते हैं ई टेम्पलेट्स के लिए और उन्हें |safe
नहीं है।
क्या जिन्जा 2 में मार्कअप मौजूद है? – iamgopal
मार्कअप एक जिन्जा 2 वर्ग है, हां। यह कई पाइथन पुस्तकालयों (दुर्भाग्य से Django नहीं) द्वारा समर्थित एक आम इंटरफ़ेस लागू करता है। आप मार्कअप सुरक्षित पैकेज का भी उपयोग कर सकते हैं जो एक ही ऑब्जेक्ट लागू करता है: http://pypi.python.org/pypi/MarkupSafe –
कस्टम फ़िल्टर लिखने के लिए यह सबसे अच्छा है, जब फ़िल्टर को टेम्पलेट में कुछ मार्कअप पास करना होता है। – erjiang
जिंजा डॉक्स अनुभाग HTML Escaping से:
जब स्वत: एस्केपिंग सब कुछ सक्षम किया गया है मूल्यों को स्पष्ट रूप से के रूप में सुरक्षित के रूप में चिह्नित के अलावा डिफ़ॉल्ट से बच रहा है। वे या तो को या सुरक्षित फ़िल्टर का उपयोग करके एप्लिकेशन द्वारा या टेम्पलेट में चिह्नित कर सकते हैं।
उदाहरण:
<div class="info">
{{data.email_content|safe}}
</div>
http://jinja.pocoo.org/docs/dev/templates/#html-caping – Akairis
हाय @Armin Ronacher, आप कृपया अधिक समझाने और एक उदाहरण देना होगा? धन्यवाद। – Samoth
मेरा मतलब है, उदाहरण के लिए, मेरे पास 'userHome.html' नामक एक फ़ाइल है, और मैं 'reend_template (' userHome.html ')' का उपयोग करना चाहता हूं, लेकिन यह सही ढंग से प्रस्तुत नहीं करता है और सभी ** एचटीएमएल इकाइयों में बदल जाते हैं ** मेरे क्रोम कंसोल में। – Samoth
'ट्रांस' टैग में इसे '{% trans something = something | safe%} ए {{something}} बी {% endtrans%}' – Kangur