繁体   English   中英

服务员服务需要很长时间才能运行烧瓶服务器

[英]Waitress serve takes too long to run flask server

我正在尝试使用女服务员服务运行烧瓶应用程序,但是当我调用“python app.py”时没有任何反应(我等了 2 分钟然后 ctrl+c)。 当我用 app.run() 运行烧瓶时,一切正常。 一些帮助将不胜感激

import Flask
from waitress import serve

app=Flask(__name__)
<My code>
if __name__ == "__main__":
  serve(app,port="8080",host="0.0.0.0")

例如,创建一个名为create_app()的方法,该方法返回 Flask 对象。 如果您愿意,可以添加路线。

from flask import Flask

def create_app():
    app = Flask(__name__)

    @app.route('/')
    def hello_world():
      return 'Hello World!'
    return app

如果您的文件名为app.py ,请运行以下命令。

waitress-serve --port 8080 --call "app:create_app"

输出:

INFO:waitress:Serving on http://0.0.0.0:8080

编辑


如果你真的想用waitress.serve()来做,你可以这样做。 出于某种原因,这只适用于本地主机(127.0.0.1)

使用您的代码,服务器启动并且可以访问(您唯一需要的是一些路由)唯一缺少的是终端输出。

您可以像这样激活日志记录:

import logging
logger = logging.getLogger('waitress')
logger.setLevel(logging.INFO)

这会导致输出:

INFO:waitress:Serving on http://127.0.0.1:8080

如果您想查看每个请求: install paste pip install paste并使用TransLogger

from paste.translogger import TransLogger
# modify serve function
serve(TransLogger(app, setup_console_handler=False), host='127.0.0.1', port=8080)

这会在每个请求上导致以下输出。

INFO:wsgi:127.0.0.1 - - [21/Jul/2022:15:40:25 +0200] "GET / HTTP/1.1" 200 12 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"

当然,这取决于您的浏览器。

完整代码:

from flask import Flask
from waitress import serve
from paste.translogger import TransLogger
import logging
logger = logging.getLogger('waitress')
logger.setLevel(logging.INFO)

app = Flask(__name__)

@app.route('/')
def hello():
  return 'Hello World!'


serve(TransLogger(app, setup_console_handler=False), host='127.0.0.1', port=8080)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM