我需要采取的步骤才能让其他人看到我的 Flask 网页

steps I need to take to make my flask webpage visible by others

我有一个带有一些简单算法的网页,returns 输出基于用户输入和本地数据文件。我检查过它在我的本地机器上工作,但发现它在我的手机 phone / 其他笔记本电脑上不工作。

我在网络上尝试了几种方法 - 例如在我的终端上 'python app.py --host=0.0.0.0' 或 app.run(host='0.0.0.0', port=5000) 但没有用。

我正在从头开始重试。下面是我的代码(我将文件命名为 app.py),在进行任何编辑之前我将其恢复为默认值。

from flask import Flask,render_template,url_for,request
app = Flask(__name__)
@app.route('/')
def home():
    return render_template('home.html')
@app.route('/predict',methods=['POST'])`
def predict():
#some algorithm stuffs
    return render_template('result.html',  tables=[result.to_html(classes='data',escape=False)], titles=result.columns.values)
if __name__ == '__main__':
    app.run(debug=True)

我应该在这个 py 文件中添加什么? 另外,除了编码之外还有什么我应该做的吗? (防火墙、端口等)我目前从本地机器开始,并计划稍后使用虚拟机 (EC2)

如果你想让任何人都能看到它,你必须至少打开你盒子的一个端口(根据你的盒子型号,你可以找到一些关于如何操作的解释),这可能是不安全的。然后,您必须将您的盒子端口映射到您的 PC 端口。

你应该直接使用云虚拟机,因为它更容易(只允许连接到 VM 端口 80)

一个不错的选择是使用 Docker 并将您的应用程序部署到 Heroku 或 Azure(免费!)

如果你想让它在你自己的网络上可见(只是在同一个 WIFI 上的人)那么它更容易,但我不认为那是你的意思

如果您想在自己的本地网络中部署您的应用程序并使其可供您的 phone 或网络中的其他计算机出于测试原因访问,那么以下步骤就足够了:

  • 确保您的计算机已连接到您的接入点并接收到一个 IP 地址,然后使用以下命令启动您的应用程序:flask run --host=0.0.0.0 告诉您的操作系统监听所有 public IP。

  • 检查你的机器的ip地址和flask所在的端口号运行(例如:192.168.43.114:5000)。在您的 phone 或网络上的另一台计算机上的浏览器中键入它,您将可以访问您的应用程序。

如果您想要更大的部署,例如让其他网络中的计算机访问您的应用程序,那么您需要考虑其他策略。以下是一些示例,所有示例均与特定用例相关: