2016-12-04 78 views
0

有什么方法可以检索使用Python脚本创建并在JavaScript脚本中使用它的变量?在JavaScript中检索Python变量

例如,我用Python给我一个int解析XML:

parse code parse code parse code 
i = 3 

然后在我的JavaScript,我可以使用变量 “i” 的一些功能:

code for my function 
r = 30/i 

然后r值等于10

+0

你可以用Django做到这一点,但我感觉你没有使用Django ... – elethan

回答

0

不是直接的,因为它们通常是在不共享内存或状态的单独计算机上的单独进程。在你的问题中,你没有给出太多的上下文,所以我将假定你正在web服务器上运行python,并用html输出HTML,或者将它作为外部源链接。

如果是这种情况,您有两种选择。

  1. 动态生成JS,包括它在Python脚本的输出(HTML响应)

这样做的一种方法是通过开放加载JavaScript在你的python脚本()函数。然后在此前面添加一个字符串,该字符串是有效的JavaScript代码并定义一个变量或JSON对象。

比方说,你有这样的JavaScript文件:

javascript.js

alert(my_js_data["field1"]); 
alert(my_js_data["field2"]); 

这里是你的Python脚本:

import json 

# define your data you want in your javascript variable 
my_data = {'field1': 'string value', 'field2': 100} 

# open an existing script that is ready to use the my_js_data variable 
# we are about to generate 
js = open('javascript.js', 'r') 

# dynamically generate javascript code 
javascript_out = "var my_js_data = JSON.parse('{}');".format(json.dumps(my_data)) 
javascript_out += js.read() 

现在,在你的Python变量javascript_out是一个字符串,看起来像这样:

var my_js_data = JSON.parse('{"field1": "string value", "field2": 100}'); 

alert(my_js_data["field1"]); 
alert(my_js_data["field2"]); 

没有更多的上下文,我无法确切地告诉你如何处理javascript_out变量,但是您需要将它包含在HTML中的适当位置。

请注意,如果没有python脚本,javascript.js文件将不起作用,因为my_js_data变量不会被定义。

  1. 让您的Javascript向您的服务器发出另一个HTTP(ajax)请求,然后它将返回一个带有您的数据的JSON字符串。