首页 > 解决方案 > 可以从外部网络访问使用 Flask 和 Python 构建的 REST API 吗?

问题描述

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

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

这是我的代码:

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/test")
def hello():
    return jsonify({"about":"Hello World"})

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

如果我在 iPhone 上连接到移动数据时进入 Safari 并输入“ http://RaspberryPiIP:2000/test ”,那么页面将无法加载并且“响应时间过长”。但是,如果我在我的家庭 wifi 上做同样的事情,树莓派也连接到,页面将按预期加载。

标签: pythonflask

解决方案


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


推荐阅读