2016-12-04 76 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字符串。