Django-valkaisuaine on Django app vaalentamiseen ja puhdistaa käyttäjä HTML.
valkaisuaine on Python-moduuli, joka vie tahansa HTML input, ja palauttaa voimassa, puhtaita HTML, joka sisältää vain sallittuja osajoukko HTML tageja, attribuutteja ja tyylejä. Django-valkaisuaine on Django sovellus, joka tekee käytöstä valkaisuainetta erittäin helppoa.
Asetukset
1. Asenna Django-valkaisuaine kautta pip:
& Nbsp; pip asentaa Django-valkaisuainetta
2. Lisää Django-valkaisuainetta sinun INSTALLED_APPS:
& Nbsp; INSTALLED_APPS = [
& Nbsp; # ...
& Nbsp; "django_bleach",
& Nbsp; # ...
& Nbsp;]
3. Valitse järkeviä oletusarvot sallittu tageja, attribuutteja ja tyylejä; ja käyttäytyminen kun tuntematon tageja kohdataan. Kukin näistä ovat valinnaisia, ja oletuksena käyttäen valkaisuainetta oletusarvot. Katso valkaisuaine asiakirjat:
& Nbsp; # Mitkä HTML-koodi
& Nbsp; BLEACH_ALLOWED_TAGS = ['p', 'b', 'i', 'U', 'em "," vahva "," "]
& Nbsp; # Mitä HTML-attribuutteja ovat sallittuja
& Nbsp; BLEACH_ALLOWED_ATTRIBUTES = ['href', 'otsikko', "tyylinen"]
& Nbsp; # Mitkä CSS-ominaisuuksia ovat sallittuja "tyyli" attribuutteja (olettaen
& Nbsp; # tyyli on sallittu määrite)
& Nbsp; BLEACH_ALLOWED_STYLES = [
& Nbsp; "font-family", "font-weight", "text-decoration", "font-muunnelma]
& Nbsp; # Strip tuntematon tagit jos totta, vaihda HTML karkasi merkkiä jos
& Nbsp; # False
& Nbsp; BLEACH_STRIP_TAGS = True
& Nbsp; # Strip kommentteja, tai jätä ne.
& Nbsp; BLEACH_STRIP_COMMENTS = False
4. Valitse oletus widget valkaisuainetta kentät. Tämä oletuksena django.forms.Textarea, mutta luultavasti halua korvata sen WYSIWYG, tai jotain vastaavaa:
& Nbsp; # Käytä CKEditorWidget valkaistun HTML kentät
& Nbsp; BLEACH_DEFAULT_WIDGET = 'wysiwyg.widgets.WysiwygWidget'
Käytän Django-CKEditorista minun hankkeita, mutta mitä käytät on sinun.
Käyttö
In your mallit
Django-valkaisuaine tarjoaa kolme tapaa luoda valkaistua lähdön. Yksinkertaisin tapa kuten käyttäjän muokattavissa HTML sisällön automaattisesti desinfioidaan on käyttää BleachField malli kenttään:
# App / models.py
alkaen Django tuonti mallit
alkaen django_bleach.models tuoda BleachField
luokan kirjeenä (models.Model):
& Nbsp; title = models.CharField ()
& Nbsp; content = BleachField ()
& Nbsp; # ...
BleachField vie seuraavat argumentit, muokata lähtö valkaisuainetta. Katso valkaisuaine asiakirjat niiden käyttöä:
- Allowed_tags
- Allowed_attributes
- Allowed_styles
- Strip_tags
- Strip_comments
Lisäksi valkaisuainetta erityisiä perusteluja, BleachField malli kenttä hyväksyy kaikki normaalin kentän ominaisuuksia. Kulissien takana, se on TextField, ja hyväksyy kaikki samat perustelut kuin oletuksena kenttiin tehdä.
BleachField malli alalla käyttää BleachField lomakkeen kentän tehdä kaiken työn. Se ei tarjoa sanitisation tilat itse. Tätä pidetään bugi, mutta puhdas ratkaisu ei ole vielä pantu täytäntöön. Jokainen vetää pyynnöt vahvistettaessa otetaan kiitollisena sovelletaan. Niin kauan kuin BleachField mallissa kenttä käytetään vain BleachField lomakekentistä ei tule ongelmaa. Jos näin ei ole, puhtaita HTML ei voida taata.
Vuonna lomakkeet
BleachField lomakekenttä tarjotaan. Tämä kenttä sanitises HTML käyttäjän syötettä, ja esittelee turvallinen, puhdas HTML omaan Django sovelluksen. Tämä on suurin osa työstä tehdään.
In your malleja
Jos sinulla on peice sisältöä jostain, joka on painettu mallin, voit käyttää valkaisuainetta suodatin:
{% Kuormitus bleach_tags%}
{{Some_unsafe_content | valkaisuainetta}}
Suodatin ei ota argumentteja. Se käyttää oletusasetuksia määritelty sovelluksen asetuksista.
Vaatimukset :
- Python
- Django
Kommentteja ei löytynyt