2017-01-13 254 views
0

我正在使用Python和CGI進行維護。該網站目前運行在Python上,但出於某種奇怪的原因,我必須將Python變量分配給 到同一個Python文件中的JavaScript變量。我嘗試了很多東西,但他們都沒有工作,我不知道是否有可能這樣做。任何幫助將不勝感激。我簡化了代碼,以顯示從Python到JavaScript的變量交換。我的Python版本是3.5.2,並且該站點在IIS服務器上運行。再次感謝您的幫助和時間。將Python變量分配給JavaScript變量

import cgi 

print('') 
temp = 78 #These is the Python variable I need to assign to the Javascript variable. 

print('<html>') 
print('<script type="text/javascript">') 
print('var x = {{temp}};') #Here's how I'm trying to assign the python variable. 
print('document.write(x);') 
print('document.write("HELLO PYTHON VARIABLE!!");') 
print('</script>') 
print('</html>') 
+0

是它只是一個數字,或不變量保持用戶輸入? (因爲那時涉及安全) – RemcoGerlich

回答

1

很多方法可以做到這一點:

print ('var x = %d' % temp) 

print ('var x = ' + str(temp) + ';') 

print ('var x = {{temp}};'.replace("{{temp}}", str(temp))) 
+0

非常感謝GantTheWanderer!這只是我想交換的數字,兩種方式都能完美運作!我有很多日子都陷入困境,你只是節省了很多時間,再次感謝你的迴應。來自危地馬拉的問候。 –

+0

De nada,編寫程序編寫程序起初可能會很棘手,但通過實踐它成爲第二天性。其他缺陷包括不得不處理報價(例如'temp =「Occam's Razor」''print(「var x ='」+ temp +「'」)''你可能會很快跟蹤它們而遇到麻煩。 – GantTheWanderer

+0

Muchas gracias otra vez格蘭特!哇,你是對的,它很難跟蹤報價,我無法讓你的字符串例子工作,但我沒有考慮數數,我使用3.5版本,我認爲,你的是2.7由於「奧卡姆剃刀」上的雙引號,它就像這個'奧卡姆剃刀'用單引號工作,感謝字符串的例子,因爲我現在只是偶然發現了這個問題,非常感謝! –

2
print('var x = {{temp}};') #Here's how I'm trying to assign the python variable. 

它看起來像你正在嘗試做一個模板的事情,而不在模板引擎實際上是。

試試這個:

print('var x =' + temp + ';') 
+0

關於模板引擎的有效點 –

+0

非常感謝Evan Thompson!你完全正確,我需要這樣做,同時,這些解決了即時問題,它非常完美,非常感謝你! –