加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

settings源码

发布时间:2020-12-20 10:41:13 所属栏目:Python 来源:网络整理
导读:自定义settings配置 创建python项目 settings.py NAME = ‘我是暴露给用户的自定义配置‘ __init__.py import osimport importlibfrom lib.conf import global_settingsclass Settings(object): def __init__(self): #先for循环获取全局配置文件中所有 的变

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读