2012-09-09 3 views
12

मैं समझ {{ something.render() | safe }} की तरह एक अभिव्यक्ति करता है एक छोटे से समस्या है।जिंजा 2 सुरक्षित कीवर्ड

मैं क्या देखा है, बिना safe कीवर्ड यह पूरे एचटीएमएल दस्तावेज़ ही नहीं, सच सामग्री आउटपुट।

मैं क्या पता होना चाहते हैं, यह वास्तव में क्या करता है, यह कैसे कार्य करता है।

उत्तर

12

safe फ़िल्टर स्पष्ट रूप से "सुरक्षित" के रूप में एक स्ट्रिंग को चिह्नित करता है, यानी, ऑटो-एस्केपिंग सक्षम होने पर इसे स्वचालित रूप से नहीं छोड़ा जाना चाहिए।

इस फिल्टर पर प्रलेखन here है।

manual escaping पर खंड को देखने के लिए जो वर्ण से बचने के लिए अर्हता प्राप्त देखें।

15

आम तौर पर पाठ HTML-भाग निकले है (ताकि <b>&lt;b&gt; के रूप में बाहर लिखा जाएगा, जो <b> के रूप में प्रस्तुत करना होगा)।

जब आप |safe किसी चीज़ के बाद डालते हैं, तो आप टेम्पलेट इंजन को बता रहे हैं कि आप पहले से ही टेक्स्ट से बच निकले हैं, यानी "इसे सीधे प्रस्तुत करना सुरक्षित है"। तो यह आप के लिए है कि एन्कोडिंग काम नहीं चलेगा।

अधिक जानकारी के लिए: http://jinja.pocoo.org/docs/templates/#html-escaping

4

प्रोग्राम के रूप में सुरक्षित फिल्टर का उपयोग करने के लिए देख किसी को भी यहाँ आने के लिए: यह एक markupsafe.Markup वर्ग, जिस पर Jinja2 पर निर्भर करता है में लपेट दें।

संबंधित मुद्दे