2016-01-22 1 views
0

Я работаю над проектом Google App Engine на основе python.Проблема с извлечением данных из обработчика python в javascript с помощью jinja2 и движка Google.

И в том, что я пытался отправить данные (список Python) из обработчика питона в JavaScript с использованием jinja2, но не может получить данные в JavaScript.

Я даже попытался отправить простое значение ключа вместо списка и json, но это тоже не сработало.

Вот мой код для обработчика питона:

mainDataList=[] 

keyList = ['key1','key2','key3'] 
valueList = ['value1', 'value2', 'value3'] 

mainDataList.append(keyList) 
mainDataList.append(valueList) 

template_values={ 
    'keyList':mainDataList[0], 
    'valueList':mainDataList[1], 
} 

template = jinja_environment.get_template('main.html') 
self.response.out.write(template.render(template_values)) 

Код внутри головки теге

<script type="text/javascript"> 
     var keyListToPopulate = {{ keyList | safe }}; 
     var valueListToPopulate = {{ valueList | safe }}; 
    </script> 

Можете ли вы помочь мне с ошибкой я делаю.

+0

И как выглядит визуализированный html/js? Какую ошибку вы видите, если таковая имеется? Никто не имеет права запускать ваш код, вам нужно предоставить дополнительную информацию –

+0

попробуйте это var keyListToPopulate = {{keyList | escape_js | safe}}; –

ответ

0

Ввод данных в встроенный javascript, как будто это просто обработка строк. Вы должны поместить правильную строку в переменные шаблона. json.dumps() создает строку, которая вам нужна. Что-то вроде этого должно работать:

template = jinja_environment.get_template('main.html') 
self.response.out.write(template.render({"keyList":json.dumps(range(5)), 
             "valueList":json.dumps(["A", "B"])} 
             )) 
Смежные вопросы