Me encuentro con este "viejo problema": el análisis de variables Jinja solo funciona en la plantilla html (pasada a render_template), por lo que si su código Javascript está en un archivo JS estático, no se puede acceder a las variables Flask/Jinja". Problema de Jinja Flask: error de sintaxis no detectado: token inesperado { en JSON en la posición 1 en JSON.parse ¿Alguien sabe si ya hay una solución para esto? Es feo incrustar el código JS en el archivo HTML
Puede usar el filtro tojson Jinja para incrustar de manera segura solo los datos JSON en el documento y luego cargarlo en JS.
{% set data = [1, 2, 3, 4] %} <script id="data" type="application/json">{{ data|tojson }}</script>Y en el archivo JS externo:
const value = JSON.parse(document.getElementById('data').textContent);