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?

Related of "Pasa parámetro con Python Flask en Javascript externo"

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í.