Pasa parámetro con Python Flask en Javascript externo

Utilizo Python Flask para mi sitio web y paso varios parámetros a Javascript. Este es mi código:

from flask import Flask from flask import render_template app = Flask(__name__) @app.route("/") def index(): return render_template("index.html", param1="Hello")     

Hello World

console.log({{param1}})

De esta manera, funciona sin problemas. El ejemplo es mi propio simplificado. Pero, si quiero tener el script en un archivo externo y llamarlo así:

     

Hello World

Y el archivo myjs.js es console.log({{param1}}) , entonces no funciona. Entonces, ¿hay alguna forma de pasar parámetros en archivos Javascript externos con Python Flask?

Si desea renderizar un archivo con Jinja, debe llamar a render_template y pasarle los valores deseados. Simplemente enlazar directamente a un archivo estático obviamente no hace eso. Una solución es usar el bloque de include de Jinja. Esto requiere que ‘myjs.js’ esté en la carpeta ‘templates / js’, y lo incluirá en la plantilla renderizada, pasando todo el contexto de las plantillas a la plantilla incluida.

  

La mejor solución es no requerir la representación de js en cada solicitud y, en su lugar, pasar parámetros a las funciones js desde su plantilla.

   

Usé una forma diferente de cargar un archivo javascript especificado en la página html:

En primer lugar, defino algunas variables dentro de las tags , y por eso llamo a mi archivo javascript:

  ...    ... 

Este es el contenido de mi archivo javascript:

 $(document).ready(function() { $("#category").change(function() { $.ajax({ type: "POST", url: $link_subcat, data: {cat: $(this).val()}, success: function(data) { $("#subcategory").html(data); } }); }); $("input[name=type]").change(function() { $.ajax({ type: "POST", url: $link_cat, data: {type: $('input[name="type"]:checked').val()}, success: function(data) { $("#category").html(data); } }); }); }); 

Este enfoque funciona para mí.