危险网站提示,wordpress 获取当前文章栏目链接,自建国外购物网站,网站定制系统数据处理软件工程配置加载方式 前言配置对象中加载配置文件中加载环境变量中加载三种配置方式优缺点工厂模式创建Flask app 前言
本篇来学习下Flake工程配置加载方式
配置对象中加载
应用场景#xff1a;作为默认配置写在代码中
# -*- coding: utf-8 -*-
# Time : 2023/9/2
# Autho… 工程配置加载方式 前言配置对象中加载配置文件中加载环境变量中加载三种配置方式优缺点工厂模式创建Flask app 前言
本篇来学习下Flake工程配置加载方式
配置对象中加载
应用场景作为默认配置写在代码中
# -*- coding: utf-8 -*-
# Time : 2023/9/2
# Author : 大海
from flask import Flaskclass DefaultConfig(object):默认配置MYSQL_HOST 192.168.66.66app Flask(__name__)# 设置配置对象方式读取配置
app.config.from_object(DefaultConfig)app.route(/)
def index():# 读取配置相当于字典中取值mysql_host app.config.get(MYSQL_HOST)# mysql_host app.config[MYSQL_HOST]print(mysql_host)return bHello 大海/bif __name__ __main__:app.run()
配置文件中加载
应用场景项目中使用固定的配置文件
# setting.py
# -*- coding: utf-8 -*-
# Time : 2023/9/2
# Author : 大海MYSQL_HOST 192.168.88.88# -*- coding: utf-8 -*-
# Time : 2023/9/2
# Author : 大海from flask import Flaskapp Flask(__name__)# 设置配置文件方式加载配置
app.config.from_pyfile(setting.py)app.route(/)
def index():# 读取配置相当于字典中取值mysql_host app.config.get(MYSQL_HOST)# mysql_host app.config[MYSQL_HOST]print(mysql_host)return bHello 大海配置文件方式加载配置。/bif __name__ __main__:app.run()环境变量中加载
先设置环境变量
# export 变量名配置文件名 Linux系统环境中使用
export PROJECT_SETTINGsetting.py# -*- coding: utf-8 -*-
# Time : 2023/9/2
# Author : 大海from flask import Flaskapp Flask(__name__)# 设置环境变量方式加载配置
app.config.from_envvar(PROJECT_SETTING, silentTrue)app.route(/)
def index():# 读取配置相当于字典中取值mysql_host app.config.get(MYSQL_HOST)# mysql_host app.config[MYSQL_HOST]print(mysql_host) return bHello 大海环境变量方式加载配置。/bif __name__ __main__:app.run() silent 参数说明 Flase没找到变量值时报错通知默认为FlaseTrue没找到变量值时也正常运行下去 三种配置方式优缺点
配置对象 优点继承可复用缺点敏感数据暴露代码中 配置文件 优点独立配置文件保护敏感数据缺点不能继承文件路径固定不灵活 环境变量 优点独立配置文件保护敏感数据文件路径不固定灵活缺点 不方便要记得设置环境变量
工厂模式创建Flask app
# -*- coding: utf-8 -*-
# Time : 2023/9/2
# Author : 大海from flask import Flaskclass DefaultConfig(object):默认配置MYSQL_HOST 192.168.66.66def create_flask_app(config):app Flask(__name__)# 设置配置对象方式读取配置app.config.from_object(config)# 设置环境变量方式加载配置app.config.from_envvar(PROJECT_SETTING, silentTrue)return appapp create_flask_app(DefaultConfig)app.route(/)
def index():# 读取配置相当于字典中取值mysql_host app.config.get(MYSQL_HOST)# mysql_host app.config[MYSQL_HOST]print(mysql_host)return bHello 大海/bif __name__ __main__:app.run()