在Javascript中获取运行python服务器的IP地址

时间:2014-06-20 11:31:35

标签: javascript python flask

我的服务器上运行了一个python烧瓶应用程序:

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

由于

3 个答案:

答案 0 :(得分:0)

注册域名并坚持使用。在您的javascript和/或配置中使用域名。

确保注册商提供更新" A记录的界面" (IP地址)并将其指向您的服务器。每当您更改IP地址时,请更新您的域的A记录。

答案 1 :(得分:0)

如果我正确理解您的问题,根据您的设置,您可以随意使用两种方法。

选项1:如果您的JavaScript代码与Python脚本在同一台计算机上运行,​​您只需始终从JavaScript代码中访问127.0.0.1(因为绑定到0.0.0.0)将使所有接口都可以访问Python服务器,包括127.0.0.1的回送接口。

选项2:如果您的JavaScript代码位于远程服务器上,那么最简单的解决方案就是使用某种Dynamic DNS服务作为中介。因此,您最终将为您的Python服务器提供两个域:一个可用于世界其他地方的静态域名,例如www.mypythonserver.com,以及一个仅由您的JavaScript代码知道的动态DNS条目,例如{{1 (永久硬编码到您的JavaScript代码中)。这两个域都应始终解析为您的Python服务器的主机地址,而无需动态DNS输入所需的手动干预。

答案 2 :(得分:-1)

您可以在脚本文件中使用templating,当用户请求脚本时,该文件将填充端口号。

有许多模板可供选择:

https://wiki.python.org/moin/Templating

通常会像

  // in script.js
   var myport = {{ port }};

并在你的python代码中:

# if request is for script.js 
# respond with template 
request.send(my_templating_engine('script.js' , port))