Programmation d'une application Web Python, je souhaite créer une zone de texte dans laquelle les utilisateurs peuvent saisir du texte dans un langage de balisage léger. Le texte sera importé dans un modèle html et visualisé sur la page. Aujourd'hui, j'utiliser cette commande pour créer la zone de texte, qui permet aux utilisateurs d'entrer tout (html) Texte:Langage de balisage léger pour Python
my_text = cgidata.getvalue('my_text', 'default_text')
ftable.AddRow([Label(_('Enter your text')),
TextArea('my_text', my_text, rows=8, cols=60).Format()])
Comment puis-je changer cela pour que seulement quelques-uns (en toute sécurité, éventuellement léger) balisage est autorisé? Toutes les suggestions, y compris les désinfectants, sont les bienvenues, à condition qu'elles s'intègrent facilement avec Python.
Je l'ai essayé en utilisant iPython, en définissant le texte comme du code html, y compris un tag de script. J'ai eu une sortie étrange: le texte était toujours le même et html = '[HTML_REMOVED]' Que dois-je faire d'autre pour obtenir ceci pour enlever les étiquettes dangereuses? J'ai essayé tous les trois modes avec le même résultat. –
En exécutant quelques tests, j'ai réalisé que je ne pouvais pas entrer de balises html, mais seulement une syntaxe markdown, et ce faisant, j'ai une sortie sécurisée. Merci, ça a marché! –
à partir des documents Pour remplacer HTML, définissez safe_mode = "replace" (safe_mode = True fonctionne toujours pour la rétrocompatibilité avec les anciennes versions). Le code HTML sera remplacé par le texte défini dans markdown.HTML_REMOVED_TEXT qui est par défaut [HTML_REMOVED]. Pour remplacer le code HTML par quelque chose d'autre: markdown.HTML_REMOVED_TEXT = "--RAW LE HTML N'EST PAS AUTORISE--" – molicule