2013-08-06 5 views
3

j'ai une phraseapp flacon ne rendant pas les balises HTML correctement

sentence = <p> Reading, watching or <span class="matching">listening</span> to the media isn’t <span class="matching">matching</span><span class="matching">much</span> help either. </p> 

pour le rendre rendre correctement à ici avant la fin est ce que je l'ai fait

from flask import Markup 
sentence = Markup(sentence) 

Mais la sortie est seulement rendu correctement pour un balisage (pas nécessairement le premier) et les autres ne sont pas rendus.

  <p> Reading, watching or <span class="matching">listening</span> to the media isn’t &lt;span class=&#34;matching&#34;&gt;much&lt;/span&gt; help either. </p> 

Qu'est-ce que je fais mal ici?

+0

En django nous ferions quelque chose comme ceci: {{variable_name | sécurité}} – pynovice

+0

J'ai eu l'erreur suivante quand j'ai essayé votre exemple dans le terminal: "UnicodeDecodeError: le codec 'ascii' ne peut pas décoder l'octet 0xe2 en position 81: ordinal pas dans la gamme (128)" N'avez-vous pas une telle erreur? Voici le lien SO pour le résoudre: http://stackoverflow.com/questions/1342000/how-to-replace-non-ascii-characters-in-string – rajpy

+0

Merci @rajpy le lien que vous avez posté a une fonction qui supprime tout les caractères non ascii et cela le rend plus facile. Merci :) –

Répondre

6

Le coupable est le

isn’t

que « ' » est pas ASCII valide, en raison de laquelle il ne vient pas dans la plage valide de caractères de balises HTML, ainsi échappe (bien qu'il faille lancer une erreur)

Espérons que cela résout le problème.

Cela fonctionne pour moi

from flask import Markup 
sentence = '<p> Reading, watching or <span class="matching">listening</span> to the media isn\'t <span class="matching">matching</span><span class="matching">much</span> help either. </p>' 
Markup(sentence) 

retours

Markup(u'<p> Reading, watching or <span class="matching">listening</span> to the media isn\'t <span class="matching">matching</span><span class="matching">much</span> help either. </p>') 

espoir est ce qui est la puissance requise

+0

ok. Vous voyez le coupable et vous avez manuellement édité et ajouté l'échappement pour le rendre valide HTML Markup. Mais j'ai des gazillions de phrases. Comment changez-vous d'abord cette phrase en HTML valide? –

+0

bien, vous pouvez écrire un script pour soit supprimer tous les caractères hors de portée .. ou les remplacer par un valide ..: D – avk

+0

fait, ajouté cette partie à la réponse aussi :) –

Questions connexes