自定义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)

  

  

最新文章

  1. eclipse的快捷键(写给eclipse新手)
  2. python2.1-原理之琐碎技巧
  3. OpenGLES入门笔记一
  4. BZOJ 1563 诗人小G
  5. ROW_NUMBER()/RANK()/DENSE_RANK()/ntile() over()
  6. (转) 新手入门:C/C++中的结构体
  7. ASP.Net使用母版页窗
  8. Excel教程(3) - 函数输入方法
  9. Alamofire源码解读系列(二)之错误处理(AFError)
  10. java关键字transient与volatile小结
  11. 2017寒假零基础学习Python系列之函数之 递归函数
  12. JAVA NIO学习三:NIO 的非阻塞式网络通信
  13. php能做什么
  14. Unity 图形处理(切分与拉伸)
  15. wingIDE Pro6 破解教程
  16. 学习Acegi应用到实际项目中(2)
  17. Python基础学习(第4天)
  18. LeetCode - Baseball Game
  19. PTA (Advanced Level) 1007 Maximum Subsequence Sum
  20. SQLSERVER中的鬼影索引

热门文章

  1. Python---3基础输入方法
  2. IPSec 传输模式下ESP报文的装包与拆包过程 - 择日而终的博客
  3. 测试LFI WITH PHPINO过程中的一些记录
  4. java基础进阶篇(四)_HashMap------【java源码栈】
  5. Django+Nginx+Uwsgi环境配置
  6. 7-49 求前n项的阶乘之和 (15 分)
  7. SpringBoot整合Mybatis对单表的增、删、改、查操作
  8. JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器
  9. 前端小微团队的Gitlab实践
  10. Flutter 拖拽控件Draggable看这一篇就够了