运行flask报WARNING: This is a development server. Do not use it in a production deployment.

2023-11-08 19:59

本文主要是介绍运行flask报WARNING: This is a development server. Do not use it in a production deployment.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

运行 flask 程序,报:

WARNING: This is a development server. Do not use it in a production deployment.

解决方案一,使用PyWSGI(不推荐)

1. 下载gevent包:在控制台输入: pip install gevent

2. 修改 flask 启动代码:

from gevent import pywsgiif __name__ == '__main__':server = pywsgi.WSGIServer(('0.0.0.0', 5000), app)server.serve_forever()

解决方案二,虽然 PyWSGI 服务器相对轻量并且易于设置,但许多人更倾向于使用像 Gunicorn 这样的 WSGI HTTP 服务器,因为它提供了更强大的功能,例如负载均衡和热重载。

1. 安装 Gunicorn:pip install gevent gunicorn  (注:必须得安装gevent) 

2. 通过 gunicorn 运行 flask 应用:

gunicorn -w 4 myapp:app

在这个命令中,-w 4 表示启动4个工作进程,myapp 是包含你的 Flask 应用的Python文件(比如 myapp.py),app 是 Flask 实例的名称。

请注意,Gunicorn 不支持 Windows,仅支持 Unix 类操作系统(如 Linux 和 MacOS)。如果你正在使用 Windows,你可能需要考虑其他的 WSGI 服务器,例如 Waitress。

再者,对于生产环境,Flask 应用的部署通常更为复杂,包括使用反向代理服务器(如 Nginx)以提供静态文件服务和负载均衡,使用进程管理器(如 systemd 或 Supervisor)以确保应用在出错或系统重启时自动重新启动等。此外,你还应该确保应用在一个安全、隔离的环境中运行,多数情况下这意味着你应该使用虚拟环境和 Docker 容器。

代码示例:

from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello():return 'Hello, World!'def init_app():# 这里放置需要在初始化时执行的逻辑pass# 手动调用初始化逻辑
init_app()if __name__ == '__main__':app.run()

执行程序 :

gunicorn -b 0.0.0.0:8090 app:app

 注意:执行上面命令, if __name__ == '__main__': 下面的代码不会被执行。

解决方案三,使用 flask run 

export FLASK_ENV = "development"
flask run

flask run 命令起源于 Flask 的命令行接口;它不仅启动你的应用,还设置了一些特殊的环境变量,使得 Flask 在调试模式下工作,并允许你使用 Flask 的其他命令行特性。

当你使用 flask run 来启动你的应用时:

  1. 你可以利用 Flask 的命令行接口来运行定制的 Python 命令。这对于运行定制的数据库迁移、批处理任务和其他与应用环境有关的命令非常有用。

  2. 它设置了一个 FLASK_ENV 环境变量,使得 Flask 在调试模式或开发模式下执行,这有利于开发和调试。

然而,使用 flask run 命令来启动你的 Flask 应用需要正确配置 FLASK_APP 环境变量,这可能会有些麻烦。

相反,当你使用 python filename.py 来启动你的应用时:

  1. 这是一种更直观、简单的方法。你不需要配置任何特殊的环境变量,只需要一条简单的命令就能启动应用。

  2. 这种启动方式比 flask run 更灵活,你可以在 if __name__ == "__main__": 块中进行更多的定制设置。

综合上述,flask run 和 python filename.py 各有优势,适合的场景也不同。你可以根据你的需要和项目的实际情况来选择最合适的。在开发环境中,通常推荐使用 flask run。而在生产环境中,Flask 应用通常被作为 WSGI 对象通过 WEB 服务器(如 uWSGI, Gunicorn 等)运行,这时不需要 flask run 或 python filename.py

这篇关于运行flask报WARNING: This is a development server. Do not use it in a production deployment.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/JineD/article/details/132250043
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/372164

相关文章

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb