settings源码
2024-10-08 20:04:50
自定义settings配置
创建python项目
settings.py
NAME = '我是暴露给用户的自定义配置'
__init__.py
import os
import importlib from lib.conf import global_settings class Settings(object):
def __init__(self):
#先for循环获取全局配置文件中所有 的变量名
for name in dir(global_settings):
#判断是否是大写
if name.isupper():
setattr(self,name,getattr(global_settings,name))
#从全局的大字典中先拿到暴露给用户的配置文件,字符串路径
path = os.environ.get('xxx') #path = 'conf.settings'
#利用importlib模块导入settings模块
module = importlib.import_module(path)
''' from conf import settings
module就是settings模块名
''' #再for循环暴露给用户的文件中所有的变量名
for name in dir(module):
if name.isupper():
k = name
v = getattr(module,name)
setattr(self,k,v) settings = Settings()
global_settings.py
NAME = '我是项目默认的配置'
start.py
import os
import sys BASE_DIR = os.path.dirname(__file__)
sys.path.append(BASE_DIR) if __name__ == '__main__': #在项目的全局设置一个大字典
os.environ.setdefault('xxx','conf.settings') from lib.conf import settings
print(settings.NAME)
最新文章
- eclipse的快捷键(写给eclipse新手)
- python2.1-原理之琐碎技巧
- OpenGLES入门笔记一
- BZOJ 1563 诗人小G
- ROW_NUMBER()/RANK()/DENSE_RANK()/ntile() over()
- (转) 新手入门:C/C++中的结构体
- ASP.Net使用母版页窗
- Excel教程(3) - 函数输入方法
- Alamofire源码解读系列(二)之错误处理(AFError)
- java关键字transient与volatile小结
- 2017寒假零基础学习Python系列之函数之 递归函数
- JAVA NIO学习三:NIO 的非阻塞式网络通信
- php能做什么
- Unity 图形处理(切分与拉伸)
- wingIDE Pro6 破解教程
- 学习Acegi应用到实际项目中(2)
- Python基础学习(第4天)
- LeetCode - Baseball Game
- PTA (Advanced Level) 1007 Maximum Subsequence Sum
- SQLSERVER中的鬼影索引
热门文章
- Python---3基础输入方法
- IPSec 传输模式下ESP报文的装包与拆包过程 - 择日而终的博客
- 测试LFI WITH PHPINO过程中的一些记录
- java基础进阶篇(四)_HashMap------【java源码栈】
- Django+Nginx+Uwsgi环境配置
- 7-49 求前n项的阶乘之和 (15 分)
- SpringBoot整合Mybatis对单表的增、删、改、查操作
- JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器
- 前端小微团队的Gitlab实践
- Flutter 拖拽控件Draggable看这一篇就够了