Jinja2 स्वचालित रूप से सभी HTML टैग से बच निकलता है, लेकिन मैं कुछ टैग से बचना नहीं चाहता (जैसे img
, b
, और कुछ अन्य)। मैं यह कैसे कर सकता हूं?Jinja2 सभी HTML से बचें लेकिन img, b, आदि
उत्तर
आप अपना खुद का फ़िल्टर लिख सकते हैं। scrubber library एचटीएमएल की सफाई में बहुत अच्छा है। फ़िल्टर को jinja2.Markup
में लौटाई गई स्ट्रिंग को लपेटने की आवश्यकता होगी ताकि टेम्पलेट इसे फिर से नहीं बचाएगा।
संपादित करें: एक कोड उदाहरण
import jinja2
import scrubber
def sanitize_html(text):
return jinja2.Markup(scrubber.Scrubber().scrub(text))
jinja_env.filters['sanitize_html'] = sanitize_html
आप एक सफेद सूची दृष्टिकोण का उपयोग कर प्रस्तुत करने पर इनपुट पार्स करने के लिए चाहता हूँ - वहाँ कई अच्छे उदाहरण in this question और वहाँ बाहर viable options हैं।
{{comment|safe}}
Bleach पुस्तकालय बहुत अच्छी तरह से कर सकते हैं:
एक बार जब आप किया है कि, आप किसी भी चर कि HTML कि safe
फिल्टर का उपयोग नहीं किया जाना चाहिए शामिल होंगे चिह्नित कर सकते हैं।
<p>{{ my_variable|clean(tags=['img', 'b', 'i', 'em', 'strong'], attributes={'img': ['src', 'alt', 'title', 'width', 'height']}) }}</p>
तुम भी एक प्रतिदेय उपयोग कर सकते हैं (के बजाय:
from bleach import clean
from markupsafe import Markup
def do_clean(text, **kw):
"""Perform clean and return a Markup object to mark the string as safe.
This prevents Jinja from re-escaping the result."""
return Markup(clean(text, **kw))
jinja_env.filters['clean'] = do_clean
फिर एक टेम्पलेट में आप की तरह कुछ हो सकता है:
उदाहरण के लिए, चर 'jinja_env' मानते हुए दायरे में है एक सूची) गुणों में, विशेषताओं की अधिक पूर्ण प्रमाणीकरण की अनुमति देता है (उदाहरण के लिए उस src को सत्यापित करना एक वैध यूआरएल प्रदान करता है)। दस्तावेज़ीकरण an example दिखाता है।
- 1. jinja2: html escape variables
- 2. Jinja2 का उपयोग कर जावास्क्रिप्ट के लिए स्ट्रिंग से बचें?
- 3. एसक्यूएल इंसर्ट लेकिन डुप्लिकेट से बचें
- 4. सीएसएस 100% चौड़ाई लेकिन स्क्रॉलबार से बचें
- 5. बोतल/Jinja2
- 6. Jinja2
- 7. बाहर पट्टी HTML टैग आदि NSString
- 8. Jinja2
- 9. से बचें एक उपवर्ग में सभी तर्कों को निर्दिष्ट
- 10. jinja2
- 11. wget का उपयोग कर वेबसाइट से सभी फ़ाइलों (लेकिन HTML नहीं) को कैसे डाउनलोड करें?
- 12. Jinja2
- 13. jinja2
- 14. Jinja2
- 15. Jinja2
- 16. Jinja2
- 17. Jinja2
- 18. बैश: $ @ से कैसे बचें?
- 19. एक HTML पृष्ठ से सभी जावास्क्रिप्ट हटाएं
- 20. डेडलॉक उदाहरण से बचें
- 21. jinja2 पुनरावर्ती पाश शब्दकोश
- 22. एचटीएमएल से कैसे बचें?
- 23. जेएसओएन Jinja2 टेम्पलेट
- 24. HTML/जावास्क्रिप्ट - साथ रिमोट img src स्वत: HTTP/HTTPS उपसर्ग
- 25. टर्मिनल के साथ टेक्स्ट फ़ाइल में ढूंढें और बदलें। सभी पात्रों से कैसे बचें?
- 26. पैरामीटर से कैसे बचें?
- 27. जिनजा 2 से संदिग्ध मूंछों से बचें जिसमें jQuery टेम्पलेट्स
- 28. Jinja2 अगर स्टेटमेंट
- 29. सभी रेगेक्स विशेष वर्णों से कैसे बचें, लेकिन सभी एक बार (Pattern.quote() द्वारा), केवल एक-एक करके
- 30. getRandomColor लेकिन अंधेरे रंगों से बचें: मेरी एल्गोरिदम