javascript - 在外部 Javascript 中使用 Python Flask 传递参数

标签 javascript python flask

我为我的网站使用 Python Flask,并将几个参数传递给 Javascript。这是我的代码:

from flask import Flask
from flask import render_template

app = Flask(__name__)


@app.route("/")
def index():

    return render_template("index.html", param1="Hello")


<html>
   <head>
   </head>
   <body>
      <p>Hello World</p>
   </body>
   <script>console.log({{param1}})</script>
</html>

这样一来,就没问题了。这个例子是我自己的一个简化。但是,如果我想将脚本放在外部文件上并像这样调用它:

<html>
   <head>
   </head>
   <body>
      <p>Hello World</p>
   </body>
   <script src="/static/js/myjs.js"></script>
</html>

myjs.js文件是console.log({{param1}}),那就不行了。那么,有什么方法可以用Python Flask在外部Javascript文件中传递参数吗?

最佳答案

如果你想用 Jinja 渲染一个文件,你需要调用 render_template 并传递给它所需的值。直接链接到一个静态文件显然不能做到这一点。一种解决方案是使用 Jinja 的 include堵塞。这要求“myjs.js”位于“templates/js”文件夹中,并将其包含在呈现的模板中,将所有模板上下文传递给包含的模板。

<script>{% include 'js/myjs.js' %}</script>

更好的解决方案是不需要在每次请求时都呈现 js,而是将参数从您的模板传递给 js 函数。

<script src="{{ url_for('static', filename='js/myjs.js') }}"></script>
<script>
    my_func({{ my_var|tojson }});
</script>

关于javascript - 在外部 Javascript 中使用 Python Flask 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27917471/

相关文章:

python - 读取用户输入的数字并在 Python 中执行计算

python - 如何在 Python 中从正则表达式中匹配和提取组?

flask - 如何使用外键替换为其值的API端点?

python - 如何让 gunicorn 记录未捕获的异常?

python - 在 Flask 中模拟 pymongo

javascript - 使用新查询参数执行完整路由转换时,Ember TransitionAborted

javascript - 鼠标悬停时显示按钮

javascript - Flask flash 和 url_for 与 AJAX

javascript - JQuery 动画

javascript - nightmarejs document.getElementsByClassName() 返回空对象