У меня такое ощущение, что мне здесь не хватает чего-то фундаментального. Я не уверен, что это после нескольких дней поиска в Stack Overflow и Google, но я извиняюсь за то, что навязал это сообществу, если это правда.
Context
У меня есть объект списка SQLAlchemy projects
, на который ссылаются через jinja2 в шаблоне фляги. Из шаблона я хочу снова передать список на маршрут /_background_process
, используя функцию обратного вызова jQuery для keyup (см. JQuery ниже).
1012 * Conundrum *
Функция обратного вызова работает с зарегистрированным маршрутом при тестировании, когда я передаю простую строку, из которой я могу заключить, что она настроена правильно. Однако, когда я пытаюсь передать список SQLAlchemy, в консоли браузера появляется Uncaught SyntaxError: Unexpected token &
, потому что jinja добавляет множество символов &
как часть преобразования MarkupSafe.
Некоторые вещи, которые я пробовал
Встроенный фильтр Jinja, safe
(на который есть ссылка в документации здесь ), к сожалению, не помогает, поскольку символы <
и >
, вложенные в объект списка SQLAlchemy, вызывают ту же ошибку Uncaught SyntaxError: Unexpected token <
Преобразование списка в словарь исключает символы <>
, но у объекта списка SQLAlchemy, с которым я работаю, слишком много вложенных ветвей, чтобы сделать его практичным, и решения, подобные этому ( link ) эта попытка с циклом не работает, потому что это не список из двух элементов.
Обобщая вопрос
Есть ли способ передать объект списка SQLAlchemy в функцию обратного вызова, которая уже была передана jinja шаблону колбы?
jВопрос в шаблоне колбы
<script type=application/javascript>
$(function() {
$('#process_input').on('keyup', function() {
$.getJSON('/_background_process', {
userinput: $('input[name="userinput"]').val(),
projects: {{ projects | safe }}
}, function(data) {
$("#result").text(data.result);
});
return false;
});
});
</script>