我需要采取的步骤才能让其他人看到我的 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 或网络上的另一台计算机上的浏览器中键入它,您将可以访问您的应用程序。
如果您想要更大的部署,例如让其他网络中的计算机访问您的应用程序,那么您需要考虑其他策略。以下是一些示例,所有示例均与特定用例相关:
我有一个带有一些简单算法的网页,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 或网络上的另一台计算机上的浏览器中键入它,您将可以访问您的应用程序。
如果您想要更大的部署,例如让其他网络中的计算机访问您的应用程序,那么您需要考虑其他策略。以下是一些示例,所有示例均与特定用例相关: