博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站搭建笔记精简版---廖雪峰WebApp实战-Day6:编写配置文件笔记
阅读量:4165 次
发布时间:2019-05-26

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

网站搭建笔记精简版-廖雪峰教程学习@[三川水祭]

仅作学习交流使用,将来的你会感谢现在拼命努力的自己!!!

我们在部署webapp时候需要读取配置文件,配置文件中包含主机名、密码和端口等配置信息。廖老师在第6天的代码中编写了三个文件,分别是config_default.py、config_override.py和config.py。其中config_default.py文件中存放的是开发环境的标准配置,config_override.py存放的是部署到服务器时,需要修改数据库的host等信息,config.py存放是将所有配置文件统一读取的代码。接下来附代码解释。

config.py代码

#!/usr/bin/env python3# -*- coding: utf-8 -*-'''Configuration'''__author__ = 'Michael Liao'# 直接导入config_default.py中的通用配置信息import config_defaultclass Dict(dict):    '''    Simple dict but support access as x.y style.    '''    def __init__(self, names=(), values=(), **kw):        super(Dict, self).__init__(**kw)        for k, v in zip(names, values):            self[k] = v    def __getattr__(self, key):        try:            return self[key]        except KeyError:            raise AttributeError(r"'Dict' object has no attribute '%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 Dconfigs = config_default.configstry:    import config_override    configs = merge(configs, config_override.configs)except ImportError:    passconfigs = toDict(configs)

config_default.py代码

#!/usr/bin/env python3# -*- coding: utf-8 -*-'''Default configurations.'''__author__ = 'Michael Liao'configs = {    'debug': True,    'db': {        'host': '127.0.0.1',        'port': 3306,        'user': 'www', #改为自己的用户名        'password': 'www', #改为自己的密码        'db': 'awesome' #数据库的名字    },    'session': {        'secret': 'Awesome'    }}

config_override.py代码

#!/usr/bin/env python3# -*- coding: utf-8 -*-'''Override configurations.'''__author__ = 'Michael Liao'configs = {    'db': {        'host': '127.0.0.1' #本机的ip    }}

参考博客

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

你可能感兴趣的文章
linux怎么复制文件和复制文件夹
查看>>
kafka重复消费问题--consumer消费能力很低
查看>>
springboot集成kafka
查看>>
SpringBoot整合MyBatis
查看>>
C++编程第一步:输出九九乘法表
查看>>
C++编程第一步:输出水仙花数
查看>>
C++编程第一步:输出100以内的奇数和
查看>>
C++编程第一步:两个时间点的时间差
查看>>
C++编程第一步:逆序输出一个字符串,并输出字符串长度
查看>>
C++编程第一步:判断一个数字是不是整数
查看>>
ROS理论和实践---第五章机器视觉
查看>>
anacond的安装和环境变量配置2020
查看>>
三维点云处理:python及其模块下载安装环境配置和简单测试、点云集下载、
查看>>
三维点云处理:1绪论
查看>>
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
查看>>
三维点云处理:4作业:主成分分析+平面法向量估计
查看>>
三维点云处理:3平面法向量估计
查看>>
三维点云处理:5滤波:降采样
查看>>
三维点云处理:6 降采样作业
查看>>
Fiesta:配置、运行及其结果
查看>>