Cómo quitar html / javascript de la entrada de texto en django

83

¿Cuál es la forma más fácil de eliminar todo html / javascript de una cadena?

Eldila
fuente

Respuestas:

172

Django proporciona una función de utilidad para eliminar etiquetas HTML:

from django.utils.html import strip_tags

my_string = '<div>Hello, world</div>'
my_string = strip_tags(my_string)
print(my_string)
# Result will be "Hello, world" without the <div> elements

Esta función solía ser insegura en la versión anterior de Django (antes de la 1.7), pero hoy en día es completamente segura de usar. Aquí hay un artículo que revisó este tema cuando fue relevante.

Eldila
fuente
Strip_tags no elimina las entidades html.
Pavan Kumar TS
Así que esto solo elimina las etiquetas en sí mismas. ¿Qué pasa con el contenido real también?
Kevin Parker
50

El filtro de plantilla de striptags .

{{ value|striptags }}
Ayman Hourieh
fuente
0

Django 3

{{ the_value | striptags | safe | escape }}
Ahmed Shehab
fuente