Esiste una funzione simile o equivalente in Python alla funzione PHP htmlspecialchars()? La cosa più vicina che ho trovato finora è htmlentitydefs.entitydefs().Esiste un Python equivalente alla funzione PHP htmlspecialchars()?
risposta
Se si utilizza django 1.0, le variabili del modello saranno già codificate e pronte per la visualizzazione. Si utilizza anche l'operatore safe
{{ var|safe }}
se non si desidera che venga attivato globalmente.
La cosa più vicina che conosco è cgi.escape.
Probabilmente vogliono xml.sax.saxutils.escape:
from xml.sax.saxutils import escape
escape(unsafe, {'"':'"'}) # ENT_COMPAT
escape(unsafe, {'"':'"', '\'':'''}) # ENT_QUOTES
escape(unsafe) # ENT_NOQUOTES
Dai un'occhiata alla xml.sax.saxutils.quoteattr, potrebbe essere più utile per voi
Il modulo html.entities
(htmlentitydefs
per Python 2.x) contiene un dizionario codepoint2name
che dovrebbe fai quello che ti serve.
>>> import html.entities
>>> html.entities.codepoint2name[ord("&")]
'amp'
>>> html.entities.codepoint2name[ord('"')]
'quot'
from django.utils.html import escape
print escape('<div class="q">Q & A</div>')
Sto votando per questo perché non voglio analizzare qualcosa come alcune delle altre risposte, o anche fare una ricerca e sostituire, voglio una singola funzione che fa tutto per me. – paulmorriss
Penso che il modo più semplice è utilizzare sostituire:
text.replace("&", "&").replace('"', """).replace("<", "<").replace(">", ">")
PHP sfugge solo le quattro entità con htmlspecialchars. Nota che se hai ENT_QUOTES impostato in PHP, devi sostituire le virgolette con & # 039; piuttosto che & quot ;.
Sulla @ risposta garlon4, è possibile definire il proprio htmlspecialchars(s)
:
def htmlspecialchars(text):
return (
text.replace("&", "&").
replace('"', """).
replace("<", "<").
replace(">", ">")
)
- 1. Esiste un Python equivalente alla funzione smooth.spline in R
- 2. Esiste un equivalente alla funzione MATLAB bsxfun in python?
- 3. Esiste una funzione equivalente PHP per Python os.path.normpath()?
- 4. JSP equivalente alla funzione include() di PHP?
- 5. Esiste un equivalente di hash_hmac di PHP in Python/Django?
- 6. C++ equivalente alla funzione len() di Python?
- 7. Esiste un equivalente alla funzione SUBSTRING in MS Access SQL?
- 8. Esiste una funzione equivalente alla funzione Oracle NVL in Mysql?
- 9. Elenco PHP() equivalente in Python
- 10. Esiste un equivalente Java della funzione http_build_query di PHP?
- 11. Esiste un equivalente in C++ della funzione explode() di PHP?
- 12. Esiste un equivalente Python della funzione conv2 di MATLAB?
- 13. Esiste un equivalente della funzione di intervallo Python in MATLAB?
- 14. Java Equivalente alla funzione iif
- 15. Esiste un javery JavaScript o jQuery equivalente alla funzione "somma" di Python?
- 16. Esiste un equivalente in Scala alla funzione di mappa più generale di Python?
- 17. Esiste una ruggine equivalente alla funzione orologio in C++?
- 18. equivalente PHP per un decoratore python?
- 19. Esiste un equivalente Cake per Python?
- 20. Esiste un PHP equivalente a Compass?
- 21. Esiste un equivalente PHP in sqlite3_limit?
- 22. Esiste un Python equivalente a HighLine?
- 23. quando utilizzare la funzione htmlspecialchars()?
- 24. Dojo equivalente alla funzione jQuery.text?
- 25. Esiste una funzione Javascript simile alla funzione Contatore Python?
- 26. Esiste un equivalente InnerText in BeautifulSoup/python?
- 27. Esiste un equivalente Rake in Python?
- 28. Esiste un equivalente Python simboli di Ruby?
- 29. SQLite equivalente alla funzione GREATEST di PostgreSQL
- 30. Esiste un equivalente MV MV ASP per PHP require_once()?
sembra che non ci sia più di un modo ovvio per farlo! Oh no! –