2015-04-24 103 views
0

我已经使用python(Flask Microframework)编写了一个API。要运行这个API我打开命令提示符导航到API文件夹,并使用以下命令运行“run.py” Python文件:
在Windows服务器上运行API - Python

python [filename].py 

后,我得到一个消息说 “上http://127.0.0.1:5000/暗战”因此,我可以使用下面的URL

localhost:5000/[API call] 
访问数据

我的问题是,如果我把这一切都建立在Windows Server(这将涉及到安装Python和必要的库),然后运行“run.py” python文件,我会能够从任何其他机器每次访问以下网址的API

[Server IP Address]:5000/[API call] 

我能够访问使用本地主机的API在我的机器,我将能够通过更换localhost来访问API的方式与服务器IP地址。

回答

2

不,这不会没有改变。如果您在127.0.0.1上进行侦听,则只有同一台计算机(本地主机,127.0.0.1)上的客户端才能连接到您。你需要听取0.0.0.0。

这在瓶Quickstart文档中有详尽的解释:

外部可见的服务器

如果你运行的服务器,你会发现,服务器从自己的计算机才能访问,而不是从任何其他在网络中。这是默认的,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意Python代码。

如果你已经调试禁用或信任的用户在网络上,你可以使服务器公开可用简单地通过改变run()方法的调用看起来像这样:

app.run(host='0.0.0.0')

这告诉你操作系统监听所有公共IP。

然后,你会看到Running on http://0.0.0.0:5000/,你将能够通过使用服务器的IP地址从其他机器连接到它。 (假设他们在可达网络中,当然没有防火墙等等,当然...)

0

如果你正在生产模式下运行(或类似的东西)不要运行命令因为这只能用于开发。使用官方documentation推荐的方法来部署您的应用。

相关问题