当前位置:网站首页>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
2022-08-02 02:25:00 【m0_67392661】
因为最近尝试部署flask 的项目到服务器,所以遇到特别多的琐碎事。在win 下就没报错,一放到线上就各种报错!估计我是写的代码或逻辑上还不够规范。继续加油!
因为部署到服务器,在启动的时候总是会有一个WARING,如下
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
意思很明显,就是就是我现在的环境是开发环境,建议用生产环境代替
于是使用网上教的方法,
server = pywsgi.WSGIServer(('0.0.0.0',5000), app)
server.serve_forever()
return app
没解决!
结合了网友的说法,我理解应该是这样,flask 中自带一个web服务,但是这个web 服务器性能比较差,只能适合开发的时候使用,所以,在启动flask 的时候,执行命令:flask run 会启动flask 自己的web服务器,导致系统会提示这是一个开发的服务器!
然后决定改用另外一种 启动方式,python3 xxx.py
首先在根目录创建一个wsgi.py,代码如下:
from hifeiji import create_app
app = create_app()
#以下的代码填或者不填都能跑起来
if __name__ == '__main__':
app.run()
然后再.flaskenv 中修改FLASK_APP,改成wsgi.py。
这里要解释一下,之前填文件夹名称的,比如我是填hifeiji 的,这样就会在hifeiji 里面寻找__init__.py 的文件中寻找flask的对象,如果是填了指定文件,如:wsgi.py,就会在对应的文件中查找,如果不填,就会在根目录自动寻找app.py 或者wsgi.py 的文件。
最后再加上网友说的代码:
pip install gevent
from gevent import pywsgi
server = pywsgi.WSGIServer(('0.0.0.0',5000), app)
server.serve_forever()
return app
执行命令:python3 wsgi.py
会发现什么信息都没显示,但是正常访问!不知道这算不算是用wsgi 服务启动了!像这样:

另外会发现读取 .flaskenv 的值是读取不了,代码如下:
import os
# mysql 连接参数
mysql_config = {
'DIALECT' : os.getenv('MYSQL_DIALECT'),
'DRIVER' : os.getenv('MYSQL_DRIVER'),
'USERNAME' : os.getenv('MYSQL_USERNAME'),
'PASSWORD' : os.getenv('MYSQL_PASSWORD'),
'HOST' : os.getenv('MYSQL_HOST'),
'PORT' : os.getenv('MYSQL_PORT'),
'DATABASE' : os.getenv('MYSQL_DATABASE')
}
需要加上以下代码才能读取
from dotenv import load_dotenv
load_dotenv(dotenv_path='.flaskenv',override=True)
先到这里,以后有问题会再补充,以后有时间会配置其他服务器试试!
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢

菜刀webshell特征分析

Nanoprobes丨1-mercapto-(triethylene glycol) methyl ether functionalized gold nanoparticles

Handwriting a blogging platform ~ Day 3

接口测试神器Apifox究竟有多香?

LeetCode brush diary: LCP 03. Machine's adventure

BioVendor人俱乐部细胞蛋白(CC16)Elisa试剂盒研究领域

永磁同步电机36问(三)——SVPWM代码实现

面对职场“毕业”,PM&PMO应该如何从容的应对?如何跳槽能够大幅度升职加薪?

2022-08-01 mysql/stoonedb slow SQL-Q18 analysis

The principle and code implementation of intelligent follower robot in the actual combat of innovative projects
随机推荐
The state status is displayed incorrectly after the openGauss switch
AI target segmentation capability for fast video cutout without green screen
Use DBeaver for mysql data backup and recovery
接口测试神器Apifox究竟有多香?
【web】理解 Cookie 和 Session 机制
【 wheeled odometer 】
极大似然估计
ALCCIKERS Shane 20191114
Nanoprobes纳米探针丨Nanogold偶联物的特点和应用
Scheduled tasks for distributed applications in Golang
Centos7 安装postgresql并开启远程访问
Outsourcing worked for three years, it was abolished...
AWR分析报告问题求助:SQL如何可以从哪几个方面优化?
Moonbeam and Project integration of the Galaxy, bring brand-new user experience for the community
Nanoprobes免疫测定丨FluoroNanogold试剂免疫染色方案
记一次gorm事务及调试解决mysql死锁
Nanoprobes Polyhistidine (His-) Tag: Recombinant Protein Detection Protocol
字典常用方法
Service discovery of kubernetes
BioVendor人俱乐部细胞蛋白(CC16)Elisa试剂盒研究领域