Python基础-项目-day6 配置文件

通常,一个Web App在运行时都需要读取配置文件,比如数据库的用户名、口令等,在不同的环境中运行时,Web App可以通过读取不同的配置文件来获得正确的配置。

前言

学习笔记来源-廖雪峰老师

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432339034336cbf72acd43354d72831461e3871d9f2e000

配置文件

1. 配置文件[开发环境的标准配置]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础- 配置文件[开发环境的标准配置]

'''
缺省配置
'''

configs = {
    'debug': True,
    'database': {
        'host':"127.0.0.1",
        "port":3306,
        "user": "root",
        "password":"",
        "database":"sufadi"
    },
    "session":{
        "secret": "sufadi"
    }
}
2.覆盖配置文件的某些默认设置[生产环境的标准配置]
# config_override.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础- 覆盖配置文件的某些默认设置[生产环境的标准配置]

configs = {
    "database":{
        "host":"192.168.0.100"
    }
}
3. 配置文件[所有配置读取的统一]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础- 配置文件[所有配置读取的统一]
import config_default

class Dict(dict):

    def __init__(self, name = (), values = (), **kw):
        super(Dict, self).__init__(**kw)

        for k, v in zip(name, values):
            self[k] = v

    def __getattr__(self, key):
        try:
            return self[key]
        except KeyError:
            raise AttributeError(r"Dict 内有该属性 %s" % key)

    def __setattr__(self, key, value):
        self[key] = value

def merge(defaults, override):
    r = {}

    for k, v in defaults.items():
        if k in override:
            if isinstance(v, dict):
                r[k] = merge(v, override[k])
            else:
                r[k] = override[k]
        else:
            r[k] = v

    return r

def toDict(d):
    D = Dict()
    for k, v in d.items():
        D[k] = toDict(v) if isinstance(v, dict) else v
    return D


configs = config_default.configs

try:
    import config_override

    configs = merge(configs, config_override.configs)
except ImportError:
    pass

configs = toDict(configs)

默认的配置文件应该完全符合本地开发环境,这样,无需任何设置,就可以立刻启动服务器。

提交git

git add .
git commit -m "Python基础-项目-day6 配置文件"
git push -u origin master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值