#flask #jinja2
#flask #jinja2
Вопрос:
Привет, у меня проблема с передачей простой переменной из приложения Flask в javascript. Мой python выглядит следующим образом:
@app.route('/')
def loadInitialData():
data={"grade":"0"}
return render_template('index.html', data= json.dumps(data))
Мой javascript выглядит следующим образом:
var data = JSON.parse('{{ data }}');
console.log(data);
И я продолжаю получать эту ошибку:
VM24:1 Неперехваченная синтаксическая ошибка: неожиданный токен { в JSON на позиции 1 в JSON.parse ()
Комментарии:
1. Является ли этот код javascript в index.html шаблон или в отдельном файле .js?
2. standalone .js, на который я ссылаюсь в html
3. итак, синтаксический анализ Jinja работает только с html-шаблоном, а не с файлом .js, поэтому ваши {{ data }} не оцениваются в соответствии с данными JSON из Flask.
Ответ №1:
Синтаксический анализ переменных Jinja работает только с html-шаблоном (переданным в render_template
), поэтому, если ваш код Javascript находится в статическом JS-файле, доступ к переменным Flask / Jinja недоступен.
Комментарии:
1. ах, я see…so если я напишу свой скрипт непосредственно в html, он должен работать .. как люди обходят это, когда они хотят переместить свой js в его собственный файл?
2. Привет @kPow989, ты когда-нибудь разбирался в этом? У меня такая же проблема, и я хотел бы переместить свой JS-код в его собственный файл
3. @squegene. .нет, к сожалению, в итоге я просто перенес свой код в HTML-файл… Однако я не думаю, что это проблема в Django .. возможно, попробуйте, если вы не можете найти обходной путь в Flask