2016-07-15 14 views
0

Einfache Frage, aber ich hatte dieses Problem nie und jetzt bin ich wirklich verwirrt.Python brauchen dritten Zitat Stil für '<a href="{{ url_for('index') }}"> index</a>'

Für meine Flasche google maps Funktion muss ich eine Infobox setzen, die anklickbar sein sollte und leitet den Benutzer in den Raum, der angeklickt wurde.

Dafür verwende ich:

infobox=['<a href="{{ url_for('index') }}"> index </a>'], etc. 

Aber es wird nicht bestätigen, da diese Zitate ""'' nicht genug sind, um den Ausdruck zu decken.

EDIT

Dies ist das Stück Code, der die Karte erstellt:

if location.latitude is not None: 
     mymap = Map(
     identifier="view-side", 
     lat=location.latitude, 
     lng=location.longitude, 
     infobox=['''<a href="{{ url_for('index') }}"> index </a>'''], 
     markers=[], 
     zoom = 12 
     ) 
    else: 
     print "location is none" 

Wenn ich es schon in der Py nicht, es zu lesen richtig verwenden \' (Ich habe nicht kopieren/geklebt):

enter image description here

Die tripple """ tun nicht als gut arbeiten, weil sie auf einzelne " in Javascript zurück übersetzt werden:

enter image description here

EDIT

, dass die volle Beispiel dafür, was ich brauche, um enthalten ist: Wenn

mymap.infobox.append(r'''<a href=\"{{ url_for('room_details', the_room_id=zimmer.id) }}\"><img src="../static/userimg/{{ zimmer.hauptbild }}" width=80 height=55 /></a>\\''') 
+0

Wenn Sie richtig Javascript erstellen möchten, verwenden Sie diese: 'infobox = [r‚‘ ' index \\']] –

+0

Das scheint zu funktionieren, aber ich muss mit einer komplexeren Version ausprobieren, ich muss auch ein Bild hinzufügen, sieht aber vielversprechend aus. – Roman

+0

Nun, da ich darüber nachdenke, ist Ihre sicherste Wette, 'json.dumps' zu verwenden, um eine richtig maskierte JavaScript-Zeichenkette zu drucken. Dadurch wird vor den Anführungszeichen ein umgekehrter Schrägstrich eingefügt. –

Antwort

1

Sie fragen einfach, wie Sie den Apostrophen entgehen können, die Ihre Zeichenfolge enthalten sollen, dann sollte das funktionieren:

infobox=['<a href="{{ url_for(\'index\') }}"> index </a>'] 

Alternativ mit Python, können Sie auch drei Apostrophe oder Anführungszeichen verwenden können einfacher Eingabe von Zeichenketten zu aktivieren:

infobox=['''<a href="{{ url_for('index') }}"> index </a>'''] 
+0

Sie können mehr darüber hier lesen: https://docs.python.org/2.0/ref/strings.html –

+1

+1 für die Triple-Quote-Methode. Persönlich finde ich das viel einfacher zu benutzen, wenn ich erwarte, dass ich Zitate in meine Strings setze. –

+0

Leider funktionieren beide nicht, es ist ein bisschen schwierig, weil der Ausdruck von google Javascript später verwendet wird, um diese Infobox zu erstellen. Ich werde die Frage – Roman

Verwandte Themen