当前位置:首页 » 《随便一记》 » 正文

【Python】已解决:WARNING: This is a development server. Do not use it in a production deployment.

23 人参与  2024年12月13日 10:01  分类 : 《随便一记》  评论

点击全文阅读


问题说明

警告信息:“WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.”这个警告信息表明当前的服务器环境仅适用于开发和测试,不应在生产环境中使用。

开发服务器(Development Server)是框架自带的轻量级服务器,方便开发者快速测试和调试应用。然而,它缺乏生产环境所需的安全性、稳定性和性能优化。因此,在部署到生产环境时,应该使用适合生产环境的WSGI服务器,如Gunicorn或uWSGI。

具体选择哪种 WSGI 服务器,可以参考:Gunicorn 和 uWSGI 的区别-CSDN博客

简单部署:如果你只需要一个简单的 WSGI 服务器,且不需要太多额外的功能,Gunicorn 是一个不错的选择。复杂配置:如果你需要更多的配置选项和功能,或者计划使用多种协议,那么 uWSGI 可能更适合你。

 代码

from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world():    return 'Hello, World!'if __name__ == '__main__':    app.run(debug=True)  # 开发服务器,适用于开发和测试

上述代码在开发环境中是完全正确的,但在生产环境中直接运行会导致性能和安全问题。因此会触发警告信息。

解决方法

1 使用Gunicorn来部署Flask应用

安装Gunicorn
pip install gunicorn

Flask示例代码 
from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world():    return 'Hello, World!'# 仅在开发环境中使用if __name__ == '__main__':    app.run(debug=True)  # 仅用于开发环境
 运行命令
gunicorn -w 4 -b 127.0.0.1:8000 myapp:app

参数说明 

-w 4表示使用4个工作进程。-b 127.0.0.1:8000表示绑定到本地主机的8000端口。myapp:app表示应用实例,其中myapp是Python文件名,app是Flask实例。

2 使用 Uvicorn来部署Flask应用

Uvicorn 是一个高性能的 ASGI 服务器,它在 Windows 上的表现通常优于 Gunicorn。

安装 Uvicorn
pip install uvicorn
Flask示例代码 同上 
启动 Uvicorn
uvicorn myapp:app --host 127.0.0.1 --port 8000 --workers 4

3 内置的 WSGI 服务器

在开发和测试环境中,在 Windows 系统上快速测试验证,可以使用这个简单的替代方案来启动您的 WSGI 应用,既 wsgiref 模块中的 make_server 函数。这是一个内置的 WSGI 服务器。

示例代码

使用 wsgirefmake_server 函数启动一个 WSGI 应用:

示例应用 
def application(environ, start_response):    status = '200 OK'    response_headers = [('Content-type', 'text/plain')]    start_response(status, response_headers)    return [b"Hello, world!"]if __name__ == '__main__':    from wsgiref.simple_server import make_server    httpd = make_server('127.0.0.1', 8000, application)    print("Serving on port 8000...")    httpd.serve_forever()
运行命令
python app.py


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/200486.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1