[英]Get running python server IP address in Javascript
我的服務器上運行了一個python flask應用程序:
if __name__ == '__main__':
port = int(os.environ.get("PORT", 6600))
app.run(host='0.0.0.0', port=port)
而且我有一個JS腳本從該應用程序獲取信息,我不想每次部署或更改域時都手動更改JS腳本中的IP或域,所以我想問JS是否有辦法知道python應用程序的IP或主機名?
這是我的結構:
index.py <=主應用
靜態的
** index.html
** script.js
謝謝
注冊一個域名並堅持使用。 在您的JavaScript和/或配置中使用域名。
確保注冊商提供用於更新“ A記錄”(IP地址)並將其指向您的服務器的界面。 每當您更改IP地址時,都將更新您域的A記錄。
如果我正確理解了您的問題,則根據設置,您幾乎可以選擇兩種選擇。
選項1:如果您的JavaScript代碼與Python腳本在同一台計算機上運行,則始終可以僅從JavaScript代碼從127.0.0.1訪問它(因為綁定到0.0.0.0將使Python服務器可從所有接口訪問,包括位於127.0.0.1的環回接口)。
選項2:如果您的JavaScript代碼位於遠程服務器上,則最簡單的解決方案是使用某種動態DNS服務作為中介。 因此,您將為Python服務器最終獲得兩個域:一個靜態域可供世界其他地方使用,例如www.mypythonserver.com
,以及一個僅由您的JavaScript代碼知道的動態DNS條目,例如mypythonserver.noip.me
(永久編碼到您的JavaScript代碼中)。 這兩個域都應始終解析為您的Python服務器的主機地址,動態DNS條目無需手動干預。
您可以在腳本文件中使用templating
,當用戶請求腳本時,該templating
中將填充端口號。
有許多可用的模板:
https://wiki.python.org/moin/模板化
通常會像
// in script.js
var myport = {{ port }};
並在您的python代碼中:
# if request is for script.js
# respond with template
request.send(my_templating_engine('script.js' , port))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.