当前位置: 首页 > 面试题库 >

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

卞嘉许
2023-03-14
问题内容

我在网站上使用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>


 类似资料:
  • 问题内容: 我只是想在我的控制器中使用,还要传递自定义变量作为参数。所以我猜看起来像这样: 但这是行不通的。有谁知道该如何在Angular中完成? 问题答案: 要添加参数,您应该使用method: 方法是 可链接的 。 这产生:

  • 问题内容: 我有一个函数,将回调函数作为参数,并用一个参数调用它。 我还有一个带有两个参数的函数:和。 我想将函数作为参数传递给,但我也想作为第二个参数()传递给。我怎样才能做到这一点? 问题答案: 只需创建一个包装回调: 或使用ECMAScript 6箭头功能:

  • 问题内容: 我无法通过所有论点。我的诺言回调仅收到一个,而不是三个: 知道我在做什么错吗? 问题答案: Q的Promise 只能有一个参数- Promise代表一个单一的值,而不是它们的集合。如果需要多个值,则将它们显式放入数组中。对于多参数回调,您可以使用。

  • 问题内容: 以传统方式添加事件侦听器: 但是我想适应addEventListener的方式: 它不起作用,因为我无法将getSelection()中的任何参数作为addEventListener方法中的第二个参数传递?据我所知,我只能使用没有括号的函数名。 任何的想法? 问题答案: 无需传递任何内容。用于的函数将自动绑定到当前元素。只需在您的函数中使用: 如果要将任意数据传递给函数,请将其包装在您

  • 我需要在Spark SQL中传递参数。例如,下面的查询是Val timestamp=spark。sql(“从表中选择时间戳”)现在,我有另一个查询要在where类Spark中传递这个时间戳。sql(s“从表B中选择col1,其中timestamp='$timestamp'”。 但是上面的查询返回不匹配的表达式错误。有人能提出解决方案吗

  • 我正在构建一个应用程序,需要一个API调用,在其POST body请求中有数组。我正在使用OkHttp 2.6请求API。 Postman中的请求如下所示: 为了实现这一点,我尝试了几种编写的方法,