我可以使用以下代码运行网络服务器
from flask import Flask
from waitress import serve
app = Flask(__name__, static_url_path='/static')
...
serve(app, port=8080)
问题是我只能从运行它的计算机上访问它,如果我尝试使用ipv4 ip访问它,则它不起作用。我错过了一步吗?
答案 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"
烧瓶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地址。