python - flask wsgi

  1. 直接使用flask自带的wsgi,关闭debug模式会出现以下警告
from flask import Flask
app = Flask(__name__, static_folder="./static")
app.run(host="0.0.0.0", port=8080, debug=False)

# WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
  1. 在查找资料后发现可以使用gevent来解决这个问题
from gevent import monkey
from gevent.pywsgi import WSGIServer
monkey.patch_all()
from flask import Flask

app = Flask(__name__, static_folder="./static")

WSGIServer(("0.0.0.0", 8080), app).serve_forever()
  1. 但是在自己的项目会出现一种情况:客户端请求A接口返回200,在请求另外一个不存在的B接口返回404后,客户端重新请求A接口会返回405,试了挺多种方法都没有效果,最后发现用flask自带的wsgi,虽然会出现WARNING,但是并不会出现以上的问题,所以猜测可能跟gevent的wsgi有关,最后换了tornado的wsgi就没有出现以上问题,也不会出现WARNING。
from tornado.httpserver import HTTPServer
from tornado.wsgi import WSGIContainer
from tornado.ioloop import IOLoop

app = Flask(__name__, static_folder="./static")

server = HTTPServer(WSGIContainer(app))
server.listen(8080)
IOLoop.current().start()
posted @ 2024-02-15 23:06  wstong  阅读(67)  评论(0编辑  收藏  举报