接上文《像SpringBoot一样使用Flask - 5.统一处理(日志、异常、响应报文)》,一个小架子差不多了,就得看看怎么像SpringBoot多环境以及打包之后一个最终效果是怎样了。
一、写一个配置文件
python
class BaseConfig():
LOCAL_ENV = "pro"
"""通用基础配置"""
MEDIA_ROOT = "/static/media"
class TestConfig(BaseConfig):
"""测试环境配置"""
DEBUG = True
DB = '127.0.0.1'
class DevConfig(BaseConfig):
"""开发环境配置"""
DEBUG = True
DB = '192.168.1.1'
class PreProConfig(BaseConfig):
"""预发布环境配置"""
DEBUG = False
DB = '47.18.1.10'
class ProConfig(BaseConfig):
"""生产环境配置"""
DEBUG = False
DB = '47.18.1.1'
二、配置生效
python
# 多环境配置
app.config.from_object(BaseConfig)
localEnv = str(app.config.get('LOCAL_ENV'))
# 正式环境配置
if localEnv == "pro":
app.config.from_object(ProConfig)
# 测试环境配置
if localEnv == "dev":
app.config.from_object(DevConfig)
三、测试运行,成功✌️
眼尖的小伙伴肯定看到这段了
app.run(host='127.0.0.1', port=5001, debug=True)
可以配置服务相关端口哦
四、打包运行
我们跑起来的时候,总是出现红色的字,这是我们需要使用WSGI服务用在生产。
安装 Gunicorn
python
pip install gunicorn
常用参数:
python
-c CONFIG, --config=CONFIG 指定配置文件
-b BIND, --bind=BIND 绑定运行的主机和端口
-w INT, --workers INT 用于处理worker进程的数量,默认为1
-k STRTING, --worker-class STRTING 指定要使用的工作模式,默认为sync异步,类型:sync, eventlet, gevent, tornado, gthread, gaiohttp
--threads INT 处理请求的工作线程数,使用指定数量的线程运行每个worker。为正整数,默认为1
--worker-connections INT 最大客户端并发数量,默认1000
--chdir 在加载应用程序之前切换目录
总结:
基本上大伙可以通过上述的文章内容可以完成一个flask搭建,及部署使用。有兴趣的可以看看ORM和定时任务。如果有需要的话,可以评论发信息,我再更新出来哦~ 也可以自己尝试玩玩。