在Windows上与服务生一起提供Flask应用

时间:2018-06-26 14:56:48

标签: python flask wsgi waitress

我可以使用以下代码运行网络服务器

from flask import Flask
from waitress import serve

app = Flask(__name__, static_url_path='/static')
...
serve(app, port=8080)

问题是我只能从运行它的计算机上访问它,如果我尝试使用ipv4 ip访问它,则它不起作用。我错过了一步吗?

6 个答案:

答案 0 :(得分:13)

简单的例子,尝试一下!
希望对您有帮助。

app1.py

from flask import Flask
app = Flask(__name__)
# app.run(host='0.0.0.0', port=8080,debug=True)

waitress_server.py

from waitress import serve
import app1
serve(app1.app, host='0.0.0.0', port=8080)

然后在命令下运行

python waitress_server.py 

答案 1 :(得分:2)

serve(app,host ='0.0.0.0',port = 8080)

答案 2 :(得分:1)

Waitress现在提供了一个名为waitress-serve的简单命令行实用程序,用于运行Flask应用程序。请注意,此答案对女服务员1.30 有效。命令行参数将来可能会更改。

如果您的Flask应用程序名为 myapplication ,而实例化该应用程序的方法称为 create_app ,那么您可以简单地使用:-

waitress-serve --call "myapplication:create_app"

此命令将默认启动服务器在端口 8080 上监听。

如果您希望在端口 80(http)上启动它,那么您要做的就是:

waitress-serve --port=80 --call "myapplication:create_app"


enter image description here 注意:如果图像不太清晰,请单击图像。

女侍服务command line arguments

烧瓶1.0生产deployment tutorial

答案 3 :(得分:1)

我意识到这个问题可能是由于防火墙或NAT的诊断错误而引起的,但是如果人们来这里实际上是想在Windows 适当地为服务生和服务员提供Flask应用程序(作为服务) ,我想指向我的答案here,以便它可以使用并收到一些反馈。

答案 4 :(得分:1)

要在路由器后面使用内部PC,您需要在路由器中将外部端口8080转发到内部端口8080和服务器的IP地址。

在这种情况下,您可以使用外部IP从网络外部访问服务器。如果您的提供商分配了静态IP地址,则可以。如果不是,您可以使用免费的DNS提供商(我使用DnsExit),该提供商将为您提供外部IP地址的名称。这样,即使服务提供商的IP地址不时更改,您也可以使用名称访问服务器。

答案 5 :(得分:0)

  

我刚刚意识到同一网络中的计算机可以访问,但网络外部的计算机无法访问

您需要转发路由器中的端口并使用公共IP地址。