运行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.。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

运行 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.,python,flask,python,后端

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

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

2. 修改 flask 启动代码:

from gevent import pywsgi
 
if __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 Flask

app = 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文章来源地址https://www.toymoban.com/news/detail-722092.html

到了这里,关于运行flask报WARNING: This is a development server. Do not use it in a production deployment.的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Do not use it in a production deployment.Use a production WSGI server instead.

    提示:这里简述项目相关背景: Flask-WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. 提示:这里描述项目中遇到的问题:  Environment: production  WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server inste

    2024年02月08日
    浏览(31)
  • flutter出现的错误:Visual Studio not installed; this is necessary for Windows development

    当你在Windows上使用Flutter开发时,如果出现\\\"Visual Studio not installed; this is necessary for Windows development\\\"的错误,这意味着你需要安装Visual Studio,以便进行Windows平台的开发。 Flutter在Windows平台上需要使用Visual Studio来构建和运行一些特定的功能和库。为了解决这个问题,你可以按照

    2024年02月07日
    浏览(32)
  • 关于网络问题:WARNING: ROS_MASTER_URI [http://EPRobot:11311] host is not set to this machine

    如果需要远程链接,需要在远程服务器将ROS_MASTER_URI变为启动roscore的地址,即master地址 那么为什么有了IP地址还需要主机名呢? ip地址等于身份证号,主机名等于姓名,身份证号是独一无二的 1.找IP地址 2.解决 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直

    2024年02月16日
    浏览(36)
  • Host is not allowed to connect to this MySQL server

    问题:win10 系统上运行node,运行提示:Host is not allowed to connect to this MySQL server。 在windows10上面装完MySQL8.0.28,发现本地可以使用Navicat进行连接 ,但是在vue项目中调用node接口连接mysql却报错Host is not allowed to connect to this MySQL server 这个错误其实就是我们的MySQL不允许远程登录,所

    2024年02月13日
    浏览(36)
  • Host is not allowed to connect to this MySQL server解决方法

    这个错误,其实就是我们安装的MySQL不允许远程登录,解决方法如下: 1. 在装有MySQL的机器上登录MySQL mysql -u root -p密码,执行如下命令: 该结果表示是当前的root用户限制在当前的ip内访问的,需要修改他的访问域。 2. 执行命令: 3.执行 FLUSH PRIVILEGES 或者重启 MySQL 即可;

    2024年02月04日
    浏览(44)
  • 连接MySQL报错,is not allowed to connect to this MySQL server

            本机装的MySQL数据库,本机可以正常连接,其他机器访问报错,is not allowed to connect to this MySQL server,防火墙等其他策略均配置没问题 。   解决方案:         出现该问题的原因是,MySQL数据库只允许自身所在的本机器连接,不允许远程连接。 1、在MySQL所在服务器

    2024年02月16日
    浏览(31)
  • SQL Server version 8 is not supported by this driver 的 解决方案

    前提: 环境: Sql Server 2000 上古版本: 连接数据库出现: 原因 : sql server版本与jdbc版本不适配 目前可以采用这三种方案: 一.降低jdbc版本 注意:该版本与sqlserver 2000适配(已测试连接) 二.使用jtds包替换微软jdbc 参考: https://blog.csdn.net/Mou_O/article/details/124978572 三.查找微软JDBC历史版本

    2024年02月13日
    浏览(71)
  • Host is not allowed to connect to this MySQL server的解决办法

    首先我们在学习Java时,我们链接的MySql里面没有数据,我们也不知道有些什么数据,于是我们会有一种办法来继续进行我们代码的编写。 1.第一步是我的电脑必须要和我想使用的那个人的电脑处在同一个局域网下,例如学生在学校里面可以两台电脑同时连上学校的校园网;我

    2024年02月11日
    浏览(39)
  • Error: The user of this service-type is not allowed to use a reversible encryption algorithm

    在交换机或者路由器进行AAA认证时,修改用户密码出现以下状况改如何解决“Error: The user of this service-type is not allowed to use a reversible encryption algorithm”。 配置local-user 用户名 password cipher报错.....--此时需要把cipher换成irreversible-cipher。 于是,重新连接交换机修改密码,换个命令

    2024年02月14日
    浏览(40)
  • message from server: “Host is not allowed to connect to this MySQL server“问题的解决办法

    数据库安装完成后,默认是不能远程登陆的,只能在本地用localhost 或者127.0.0.1登录访问,如果需要远程登录,则需要修改mysql设置,具体修改方式: 1、本地登录mysql:  2、查看数据库中mysql表中的权限设置: 3、修改root用户权限: 4、此时,root用户的权限已经允许非localhos

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包