Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以从外部网络访问使用Flask和Python构建的RESTAPI吗?_Python_Flask - Fatal编程技术网

可以从外部网络访问使用Flask和Python构建的RESTAPI吗?

可以从外部网络访问使用Flask和Python构建的RESTAPI吗?,python,flask,Python,Flask,我正在尝试使用RESTAPI,使用Flask和Python构建,从我的Raspberry Pi创建一个服务器,并从我的iPhone访问它。我有一个非常简单的问题:我可以从创建服务器的网络以外的网络访问服务器吗?例如,如果服务器是在我的家庭wifi上创建的,我可以从我的工作场所wifi访问它吗?如果是,怎么做 目前,我可以从连接到同一网络的任何设备访问服务器。我在网上看到过许多关于类似问题的类似帖子,但我找不到上述问题的直接答案 这是我的密码: 从烧瓶导入烧瓶,jsonify,请求 app=烧瓶(

我正在尝试使用RESTAPI,使用Flask和Python构建,从我的Raspberry Pi创建一个服务器,并从我的iPhone访问它。我有一个非常简单的问题:我可以从创建服务器的网络以外的网络访问服务器吗?例如,如果服务器是在我的家庭wifi上创建的,我可以从我的工作场所wifi访问它吗?如果是,怎么做

目前,我可以从连接到同一网络的任何设备访问服务器。我在网上看到过许多关于类似问题的类似帖子,但我找不到上述问题的直接答案

这是我的密码:

从烧瓶导入烧瓶,jsonify,请求
app=烧瓶(名称)
@应用程序路径(“/测试”)
def hello():
返回jsonify({“about”:“helloworld”})
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(host=“0.0.0.0”,port=2000,debug=True)

如果我在连接到移动数据时在iPhone上进入Safari并键入“”,则页面将不会加载,并且“需要很长时间才能响应”。但是,如果我在我的家庭wifi上执行相同的操作(raspberry pi也连接到该wifi),页面将按预期加载。

这与您的代码无关。您只需要将请求从外部(公共)IP地址路由到网络中服务器的内部IP地址。如果你在家,你需要配置你的路由器。这通常称为或端口映射。
您可能还希望使用动态dns服务,因为您的ISP会频繁更改大多数外部IP。

这与您的代码无关。您只需要将请求从外部(公共)IP地址路由到网络中服务器的内部IP地址。如果你在家,你需要配置你的路由器。这通常称为或端口映射。
您可能还希望使用动态dns服务,因为您的ISP会频繁更改大多数外部IP。

为了访问internet上的某些内容,您需要静态IP地址,该地址不会像ISP分配给您的动态IP地址那样更改。但是,也有类似的服务会为您提供指向动态IP地址的dns名称,您还需要执行一些不安全的端口转发。

为了访问internet上的某些内容,您需要静态IP地址,该地址不会像ISP分配给您的动态IP地址那样发生更改。但是,也有类似的服务将为您提供指向动态IP地址的dns名称,您还需要进行一些不安全的端口转发。

谢谢您的回复。你说这种方法不安全。您有没有其他建议?这是不安全的,因为您将开放的港口暴露在全球范围内。您可以使用VPN,检查以下链接“安全”是否相对,如果您提供了正确的身份验证和授权,并且只向internet公开定义的API,则它是“安全”的。请记住,每个人(如果他知道您的IP)都可以访问您的服务器,就像您直接连接到internet时一样。正如您所说,安全是相对的,如果您不熟悉安全问题,这将导致灾难。感谢您的回复。你说这种方法不安全。您有没有其他建议?这是不安全的,因为您将开放的港口暴露在全球范围内。您可以使用VPN,检查以下链接“安全”是否相对,如果您提供了正确的身份验证和授权,并且只向internet公开定义的API,则它是“安全”的。请记住,每个人(如果他知道您的IP)都可以访问您的服务器,就像您直接连接到internet时一样。正如您所说,安全是相对的,如果您不熟悉安全问题,它将导致灾难。我投票将此问题作为离题题结束,因为它涉及网络基础设施,不是编程。我投票结束这个问题,因为它是关于网络基础设施,而不是编程。