如何使Python Web Server公开?

问题描述

我的想法是从python程序同步相等的脚本 通过创建一个 基于首先启动的脚本的全局时间戳。

因此,为了获得更好的解释,它应该像这样工作:

该脚本在PC 1上运行并创建一个时间戳。 此后脚本必须执行的所有操作将只执行一次 到达时间戳+ 5分钟的时间。

对于PC 2或更高版本上的脚本,基本上发生了相同的情况,但没有 创建一个新的时间戳,因为开始时间不会是 一样了。

现在,我已经构建了一个创建时间戳的Python网络服务器, 也能够检索我的脚本的时间。但是我必须确保我 可以访问网络服务器,而无需参与我自己的网络,并且 使用“ localhost:...”作为地址。所以现在我想知道如何制作Web服务器 以最简单的方式公开。另一个选择是 已经是公共站点,可以根据我的配置创建自定义时间戳,因此我仅为该站点上的第一个访问者创建一个时间戳。

您是否偶然知道这些网站中的任何一个,或者可以告诉我如何公开我的HTML Web服务器?

谢谢

解决方法

您可以查看一些托管选项。只需进行一些配置工作,您就可以使您的软件在HerokuPythonAnywhere上运行,从而可以在例如https://mytimestampserver.herokuapp.comhttps://mytimestampserver.pythonanywhere.com。两种服务都提供相对慷慨的免费套餐。

,

您可以与运行脚本的PC在同一网络上创建代理服务器,然后从其他PC连接到它。

,

您可以在某种程度上免费使用诸如elastickbeanstalk之类的亚马逊服务,并将您的服务器公开

,

假设您有一个简单的Flask,它正在PC1的端口5555上监听:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host='0.0.0.0',port=5555)

可以从您的计算机访问本地页面:5555。
如果PC1在LAN中,则可以从<PC1-ip-address>:5555上的同一子网访问同一页面。

如果PC1具有公用IP地址,则可以从Internet上的<PC1-public-ip-address>:5555访问该站点。

如果PC1位于路由器后面,除非您的Internet服务提供商没有阻止或过滤此路由器,否则您应该能够创建从router-public-IP-address:<some-port>PC1-ip-address>:5555的转发规则,并可以从以下位置访问该站点通过router-public-IP-address:<some-port>访问互联网。

此外,您可以购买一个域名,并将域名地址解析为您拥有并在路由器上使用的公共IP。

如果您不能在Internet服务提供商处保留公用IP地址,则可以使用动态DNS,并在路由器检测到其公用IP地址已更改后自动更新它。