博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础-项目-day6 配置文件
阅读量:4146 次
发布时间:2019-05-25

本文共 1791 字,大约阅读时间需要 5 分钟。

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

前言

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

配置文件

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_defaultclass 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] = valuedef 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 rdef toDict(d):    D = Dict()    for k, v in d.items():        D[k] = toDict(v) if isinstance(v, dict) else v    return Dconfigs = config_default.configstry:    import config_override    configs = merge(configs, config_override.configs)except ImportError:    passconfigs = toDict(configs)

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

提交git

git add .git commit -m "Python基础-项目-day6 配置文件"git push -u origin master

转载地址:http://jacti.baihongyu.com/

你可能感兴趣的文章
CSS border 属性及用border画各种图形
查看>>
转载知乎-前端汇总资源
查看>>
JavaScript substr() 方法
查看>>
JavaScript slice() 方法
查看>>
JavaScript substring() 方法
查看>>
HTML 5 新的表单元素 datalist keygen output
查看>>
(转载)正确理解cookie和session机制原理
查看>>
jQuery ajax - ajax() 方法
查看>>
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
经典shell面试题整理
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>
素数算法
查看>>
java多线程环境单例模式实现详解
查看>>
将一个数插入到有序的数列中,插入后的数列仍然有序
查看>>
在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found
查看>>
万年历
查看>>
作为码农你希望面试官当场指出你错误么?有面试官这样遭到投诉!
查看>>