2016-07-15 3 views
0

Простой вопрос, но у меня никогда не было этой проблемы, и сейчас я действительно озадачен.Python нужен третий стиль цитаты для '<a href="{{ url_for('index') }}"> index</a>'

Для моей функции карты google map Мне нужно установить инфобокс, который должен быть доступен клику и перенаправлять пользователя в комнату, на которую была нажата кнопка.

Для этого я использую:

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

Но это обыкновение утверждать, что эти цитаты ""'' не достаточно, чтобы покрыть выражение.

EDIT

Это кусок кода, который создает карту:

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" 

Если я использую \' это уже не удается в .py, чтобы прочитать его правильно (я не копировать/вставили):

enter image description here

тройную """ сделать не работают как хорошо, потому что они будут переведены обратно в JavaScript для одного ":

enter image description here

EDIT

Это полный пример того, что мне нужно включать:

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

Если вы хотите создать правильную JavaScript, используйте: 'инфобокс = [г«» ' index \\'] ' –

+0

Кажется, что это работает, но мне нужно попробовать более сложную версию, мне также нужно включить изображение, но выглядит многообещающим. – Roman

+0

Теперь, когда я думаю об этом, ваша самая безопасная ставка заключается в использовании 'json.dumps' для печати правильно экранированной строки javascript. Это позаботится о добавлении буквальной обратной косой черты перед кавычками. –

ответ

1

Если вы просто спрашиваете, как избежать апострофов, которые вы хотите включить в свою строку, тогда это должно работать:

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

В качестве альтернативы, с питоном, вы можете также использовать три апостроф или кавычки, чтобы позволить более легкий ввод строк:

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

Подробнее об этом можно узнать здесь: https://docs.python.org/2.0/ref/strings.html –

+1

+1 для метода тройной кавычки. Лично я считаю, что намного проще в использовании, когда я ожидаю, что буду писать кавычки в своих строках. –

+0

К сожалению, оба они не работают, его немного сложно, потому что выражение используется javascript google позже для создания этой инфобокса. Я задам вопрос – Roman

Смежные вопросы