在Windows Server上运行API - Python

时间:2015-04-24 12:22:52

标签: python api windows-server-2008

我使用python(Flask Microframework)编写了一个API。要运行此API,我打开命令提示符导航到API文件夹并使用以下命令运行“run.py”python文件:

python [filename].py

发布消息,说明“正在http://127.0.0.1:5000/上运行” 因此,我可以使用以下URL

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

我的问题是,如果我将所有这些设置放在Windows Server中(这将涉及安装Python和必要的库)并运行“run.py”python文件,我是否能够从任何其他计算机访问API每个URL以下

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

我能够在我的机器上使用localhost访问API的方式,我可以通过将localhost替换为服务器IP地址来访问API。

3 个答案:

答案 0 :(得分:2)

不,这没有改变就不会工作。如果您正在侦听127.0.0.1,则只有同一台计算机上的客户端(localhost,127.0.0.1)才能连接到您。你需要听0.0.0.0。

Flask Quickstart文档中详细解释了这一点:

  

外部可见服务器

     

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

     

如果禁用了调试或信任网络上的用户,只需将run()方法的调用更改为以下内容即可公开服务器:

     

app.run(host='0.0.0.0')

     

这告诉您的操作系统要监听所有公共IP。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)