Javascript 在JS文件中处理python生成的JSON

Javascript 在JS文件中处理python生成的JSON,javascript,jquery,html,flask,Javascript,Jquery,Html,Flask,我是网络开发的新手。事实上,一周前我对此事一无所知。现在我有一个由资深同事指派的项目。 数据是使用python获得的,从python到javascript的桥梁是Flask,位于main.py。实际上,数据更长,由其他函数返回,但格式为jsonify() 我的问题是如何在JS文件(如handle_data.JS)中访问此JSON数据?我想从这些数据制作一个highchart到我的home.html 这一个对我不起作用。您可以在JavaScript中使用这种替换 <script type="

我是网络开发的新手。事实上,一周前我对此事一无所知。现在我有一个由资深同事指派的项目。 数据是使用python获得的,从python到javascript的桥梁是Flask,位于
main.py
。实际上,
数据
更长,由其他函数返回,但格式为
jsonify()

我的问题是如何在JS文件(如
handle_data.JS
)中访问此JSON
数据?我想从这些数据制作一个highchart到我的
home.html

这一个对我不起作用。

您可以在JavaScript中使用这种替换

<script type="text/javascript"> 
   var a = "{{someDjangoVariable}}";
</script>

您可以将这种替换放入JavaScript中

<script type="text/javascript"> 
   var a = "{{someDjangoVariable}}";
</script>
以下是步骤:

  • 获取JSON数据。这可能来自本地文件或API。如果您需要这一步的帮助,请使用谷歌搜索如何将JSON文件导入JavaScript或如何进行HTTP调用
  • 解析JSON数据并将其分配给一个对象:
    var myData=JSON.Parse(data)
  • 数据现在位于典型的JavaScript对象中
  • 以下是步骤:

  • 获取JSON数据。这可能来自本地文件或API。如果您需要这一步的帮助,请使用谷歌搜索如何将JSON文件导入JavaScript或如何进行HTTP调用
  • 解析JSON数据并将其分配给一个对象:
    var myData=JSON.Parse(data)
  • 数据现在位于典型的JavaScript对象中

  • 如果您将
    数据
    创建为一个字典而不是python中的字符串,这将非常有用,因为jinja2模板引擎很容易解释它。(另外,看起来您的数据已经jsonify了-您提到的数据由另一个函数返回,并由jsonify()格式化)。要访问JS文件中的数据变量,首先需要使用标记将JS文件包含在视图(即html页面)中。然后,在该脚本标记下,需要将数据变量传递给js文件(handle_bar.js)中定义的函数

    html文件的示例代码:

    <html>
    <head>
    <body>
    Some text
    <script src="path/to/handle_bar.js"></script>
    <script>
    loadData({{data}});
     </script>
    </body>
    </html>
    

    如果您将
    数据
    创建为一个字典而不是python中的字符串,这将非常有用,因为jinja2模板引擎很容易解释它。(另外,看起来您的数据已经jsonify了-您提到的数据由另一个函数返回,并由jsonify()格式化)。要访问JS文件中的数据变量,首先需要使用标记将JS文件包含在视图(即html页面)中。然后,在该脚本标记下,需要将数据变量传递给js文件(handle_bar.js)中定义的函数

    html文件的示例代码:

    <html>
    <head>
    <body>
    Some text
    <script src="path/to/handle_bar.js"></script>
    <script>
    loadData({{data}});
     </script>
    </body>
    </html>
    

    非常感谢您的重播,我们是否应该放置
    loadData({{data}})
    之前?放置
    加载数据({{data})
    之后是的。半小时前我做了一件和你类似的事,问题解决了。我所做的是
    var globaldata={{data | tojson | safe}
    然后我可以在
    handle_bar.js
    中访问
    globaldata
    ,JSON是通过
    JSON.parse(globaldata)
    获得的,我最后改成了这个方法,因为这将从HTML中隐藏日期,而我的上一个解决方案无法。非常感谢您的重播,我们是否应该把
    加载数据({{data}})
    之前?放置
    加载数据({{data})
    之后是的。半小时前我做了一件和你类似的事,问题解决了。我所做的是
    var globaldata={{data | tojson | safe}
    然后我可以在
    handle_bar.js
    中访问
    globaldata
    ,JSON是通过
    JSON.parse(globaldata)
    获得的。我最后改成了这个方法,因为这将从HTML中隐藏日期,而我的上一个解决方案无法。我被告知
    未捕获语法错误:意外标记{在JSON中的位置1
    。如果我们想在home.html之外访问JSON文件中的JSON,我们可能会遇到问题。我被告知
    Uncaught SyntaxError:Unexpected token{在JSON的位置1
    。如果我们想在home.html之外访问JSON文件,我们可能会遇到问题。谢谢,实际上这是我需要帮助的第一步。谢谢,实际上这是我需要帮助的第一步。