2009-11-08 4 views
1

J'ai une chaîne stockée dans des variables python, et je suis en train de sortir un code HTML qui contient javascript, et j'ai besoin de créer des variables javascript.générer une chaîne javascript en python

Ex, en python

title = "What's your name?" 

j'utilise Cheetah pour générer le code HTML. Code Cheetah:

var title = '$title'; 

comment puis-je échapper à cette correctement afin qu'une variable javascript correcte est créé? sortie html réelle nécessaire:

var title = 'What\'s your name?'; 

Répondre

4

Vous voulez probablement JSON:

import simplejson as sj 
print sj.dumps('What\'s your name?') # => '"What\'s your name?"' 

Ne pas générer js avec guépard, il y a des bibliothèques.

+0

cela fonctionne très bien! merci beaucoup, pouvez-vous dire quelles bibliothèques sont disponibles que je peux utiliser? – kevin

+0

THC4k merci pour cela, quand j'ai essayé cela la sortie fonctionne correctement en python. mais la sortie html réelle de Cheetah n'a pas le caractère d'échappement. savez-vous ce qui se passe? – kevin

+0

Veuillez noter que cela n'est pas suffisant pour échapper les entrées non fiables. par exemple. "str" => "str" casse JS existant! –

-2

Soit simplement faire title = title.replace("'", "\\'") en Python avant que la valeur title arrive à guépard, ou ajouter un filtre personnalisé à guépard pour le but et l'invoquer dans le modèle. Le faire sur le côté Python des choses semble plus simple, cependant.