为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在没有端口的情况下运行烧瓶?

是否可以在没有端口的情况下运行烧瓶?

当年话下 2021-11-02 15:04:09
我尝试使用以下方法在托管中启动 Flask:if __name__ == "__main__":    app.run('0.0.0.0', 8000)但是主机的 8080 端口已关闭,是否可以使用默认端口 80 运行 Flask?我试过它给了我这个错误:Use a production WSGI server instead.                                                                                                                                                                      * Debug mode: off                                                                                                                                                                                           Traceback (most recent call last):                                                                                                                                                                             File "__init__.py", line 461, in <module>                                                                                                                                                                      app.run('0.0.0.0', 80)                                                                                                                                                                                     File "/home/o/oliwin4/project/public_html/myenv/local/lib/python2.7/site-packages/flask/app.py", line 943, in run                                                                                              run_simple(host, port, self, **options)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  所以,主机说 80 端口是开放的。
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

瓶的文件指出:

虽然轻量级且易于使用,但 Flask 的内置服务器不适合生产,因为它不能很好地扩展。此处记录了一些可用于在生产中正确运行 Flask 的选项。

该文档还说明了使用 WSGI 服务器部署 Web 应用程序的几种方法。WSGI(Web 服务器网关接口)是一种标准,用于将来自 Web 服务器的请求转发到用 Python 编写的 Web 应用程序。您将需要使用 WSGI 服务器在您的主机上运行您的网站,因为听起来您正在尝试将 Flask 应用程序部署到生产环境中。

为了回答您最初的问题,当您尝试在端口 80 上运行 Flask 库时,它会故意抛出一个错误,因为它们明确指出您不应将 Flask 的内置服务器用于生产用途。这是您的堆栈跟踪的这一部分:

Use a production WSGI server instead.         
* Debug mode: off

socket.error: [Errno 1] Operation not permitted

对于懒惰的人,或者如果上面的链接失效了,这里是一个使用 Gunicorn 的例子(直接从上面的文档链接复制

独角兽

Gunicorn 'Green Unicorn' 是 UNIX 的 WSGI HTTP 服务器。这是一个从 Ruby 的 Unicorn 项目移植过来的 pre-fork worker 模型。它同时支持 eventlet 和 greenlet。在此服务器上运行 Flask 应用程序非常简单:

gunicorn myproject:app

Gunicorn 提供了许多命令行选项——参见 gunicorn -h。例如,要运行具有 4 个工作进程 (-w 4) 绑定到本地主机端口 4000 (-b 127.0.0.1:4000) 的 Flask 应用程序:

gunicorn -w 4 -b 127.0.0.1:4000 myproject:app


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号