我需要采取的步骤,以使我的烧瓶网页被其他人看到



>我有一个带有一些简单算法的网页,它根据用户输入和本地数据文件返回输出。我检查了它是否适用于我的本地机器,但发现它无法在我的手机/其他笔记本电脑上使用。

我从网络上尝试了几件事 - 例如我的终端上的"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)

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

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

  • 检查机器的 IP 地址和运行烧瓶的端口号(例如:192.168.43.114:5000)。在手机上的浏览器或网络上的另一台计算机上输入它,您将可以访问您的应用程序。

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

  • Flask-ngrok
  • 蟒蛇无处不在
  • 关于在 heroku 上部署的优秀教程

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

您应该直接使用云虚拟机,因为它要容易得多(只需允许连接到 VM 端口 80)

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

如果您想使其在您自己的网络上可见(只是同一 WIFI 上的人),那么它更容易,但我认为这不是您的重点

最新更新