Django-אקונומיקה היא אפליקציה Django כדי להלבין ולטהר HTML משתמש.
אקונומיקה היא מודול פייתון שלוקח כל קלט HTML, ומחזירה HTML תקף, מחוטא המכיל רק קבוצת משנה מוותרת של תגי HTML, תכונות וסגנונות. Django-אקונומיקה היא אפליקציה Django שעושה שימוש באקונומיקה קלה מאוד.
הגדרות
1. התקן Django-אקונומיקה באמצעות פיפס:
& Nbsp; פיפס להתקין Django-אקונומיקה
2. מוסיף אופטימיות-אקונומיקה לINSTALLED_APPS שלך:
& Nbsp; INSTALLED_APPS = [
& Nbsp; # ...
& Nbsp; 'django_bleach',
& Nbsp; # ...
& Nbsp;]
3. בחרו כמה ברירות מחדל הגיוניות לתגים מותר, תכונות וסגנונות; וההתנהגות כאשר תגים ידועים הם נתקלו. כל אחד מאלה הם אופציונליים, וברירת מחדל לשימוש בברירת המחדל של אקונומיקה. עיין בתיעוד של אקונומיקה:
& Nbsp; # איזה תגי HTML מותר
& Nbsp; BLEACH_ALLOWED_TAGS = ['עמ', ב ',' i ',' U ',' אותם ',' חזק ',' ']
& Nbsp; # איזה תכונות HTML מותרת
& Nbsp; BLEACH_ALLOWED_ATTRIBUTES = [, 'כותרת' 'href', 'סגנון']
& Nbsp; # איזה מאפייני CSS מותר ב'סגנון 'מייחסים (בהנחה
& Nbsp; # סגנון הוא תכונה מותרת)
& Nbsp; BLEACH_ALLOWED_STYLES = [
& Nbsp; "font-family ',' font-weight ',' טקסט-קישוט", "font-variant ']
& Nbsp; תגים לא ידועים # הרצועה אם נכון, להחליף עם HTML נמלט תווים אם
& Nbsp; # False
& Nbsp; BLEACH_STRIP_TAGS = True
& Nbsp; # תגובות הרצועה, או להשאיר אותם ב.
& Nbsp; BLEACH_STRIP_COMMENTS = False
4. בחר את יישומון ברירת המחדל עבור שדות אקונומיקה. ברירת מחדל זה לdjango.forms.Textarea, אבל אתה בטח רוצה להחליף אותו עם עורך WYSIWYG, או משהו דומה:
& Nbsp; # השתמש CKEditorWidget לשדות HTML מולבנים
& Nbsp; BLEACH_DEFAULT_WIDGET = 'wysiwyg.widgets.WysiwygWidget'
אני משתמש באופטימיות-ckeditor בפרויקטים שלי, אבל מה אתה משתמש תלוי בך.
שימוש
במודלים שלך
Django-אקונומיקה מספקת שלוש דרכים ליצירת פלט מולבן. הדרך הפשוטה ביותר כולל תוכן HTML למשתמש הניתן לעריכה שמחוטאת באופן אוטומטי היא על ידי שימוש בשדה מודל BleachField:
# באפליקציה / models.py
ממודלי יבוא Django
מdjango_bleach.models לייבא BleachField
מעמד לפרסום (models.Model):
& Nbsp; title = models.CharField ()
& Nbsp; תוכן = BleachField ()
& Nbsp; # ...
BleachField לוקח את הטיעונים הבאים, כדי להתאים אישית את הפלט של אקונומיקה. עיין בתיעוד של אקונומיקה לשימושם:
- Allowed_tags
- Allowed_attributes
- Allowed_styles
- Strip_tags
- Strip_comments
בנוסף לטענות אקונומיקה ספציפית, תחום מודל BleachField מקבל את כל תכונות שדה הרגילות. מאחורי הקלעים, זה TextField, ומקבל את כל אותם הנימוקים כברירת מחדל TextFields לעשות.
שדה מודל BleachField עושה שימוש בשדה טופס BleachField לעשות את כל העבודה. זה לא מספק מתקני sanitisation עצמו. זה נחשב באג, אבל פתרון נקי טרם יושם. כל בקשות משיכה תיקון זה יחולו בהכרת תודה. כל עוד שדה מודל BleachField משמש רק עם שדות טופס BleachField, לא תהיה בעיה. אם זה לא המקרה, לא ניתן להבטיח HTML מחוטא.
בטפסים שלך
שדה טופס BleachField מסופק. שדה זה sanitises קלט HTML מהמשתמש, ומציג HTML הבטוח, נקי ליישום Django שלך. זה המקום שבי רוב העבודה נעשה.
בתבניות שלך
אם יש לך peice של תוכן ממקום שצריך להיות מודפסים בתבנית, אתה יכול להשתמש במסנן אקונומיקה:
{% עומס bleach_tags%}
{{Some_unsafe_content | אקונומיקה}}
המסנן לא לוקח ארגומנטים. . היא משתמשת בהגדרות ברירת המחדל שהוגדרו בהגדרות היישום שלך
דרישות :
- Python
- Django
תגובות לא נמצא