![](/img/trans.png)
[英]Python script with flask server takes too long to exit on Windows
[英]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.