在Python的web框架中配置app的教程


Posted in Python onApril 30, 2015

有了Web框架和ORM框架,我们就可以开始装配App了。

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

由于Python本身语法简单,完全可以直接用Python源代码来实现配置,而不需要再解析一个单独的.properties或者.yaml等配置文件。

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

我们把默认的配置文件命名为config_default.py:

# config_default.py

configs = {
  'db': {
    'host': '127.0.0.1',
    'port': 3306,
    'user': 'www-data',
    'password': 'www-data',
    'database': 'awesome'
  },
  'session': {
    'secret': 'AwEsOmE'
  }
}

上述配置文件简单明了。但是,如果要部署到服务器时,通常需要修改数据库的host等信息,直接修改config_default.py不是一个好办法,更好的方法是编写一个config_override.py,用来覆盖某些默认设置:

# config_override.py

configs = {
  'db': {
    'host': '192.168.0.100'
  }
}

把config_default.py作为开发环境的标准配置,把config_override.py作为生产环境的标准配置,我们就可以既方便地在本地开发,又可以随时把应用部署到服务器上。

应用程序读取配置文件需要优先从config_override.py读取。为了简化读取配置文件,可以把所有配置读取到统一的config.py中:

# config.py
configs = config_default.configs

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

这样,我们就完成了App的配置。

Python 相关文章推荐
简单文件操作python 修改文件指定行的方法
May 15 Python
pyqt4教程之messagebox使用示例分享
Mar 07 Python
Python pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
python去除字符串中的换行符
Oct 11 Python
Python绘制频率分布直方图的示例
Jul 08 Python
Django框架视图介绍与使用详解
Jul 18 Python
python时间日期操作方法实例小结
Feb 06 Python
python编写俄罗斯方块
Mar 13 Python
Python几种常见算法汇总
Jun 02 Python
pycharm 添加解释器的方法步骤
Aug 31 Python
详解pycharm自动import所需的库的操作方法
Nov 30 Python
python实现从ftp服务器下载文件的方法
Apr 30 #Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 #Python
编写Python的web框架中的Model的教程
Apr 29 #Python
python获取本地计算机名字的方法
Apr 29 #Python
Python中编写ORM框架的入门指引
Apr 29 #Python
python获取本机mac地址和ip地址的方法
Apr 29 #Python
在Python中编写数据库模块的教程
Apr 29 #Python
You might like
php split汉字
2009/06/05 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
python之yield表达式学习
2014/09/02 Python
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
python实现顺序表的简单代码
2018/09/28 Python
python安装scipy的步骤解析
2019/09/28 Python
pytorch之添加BN的实现
2020/01/06 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
高中生校园生活自我评价
2013/09/19 职场文书
年级组长自我鉴定
2014/02/22 职场文书
股票投资建议书
2014/05/19 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
JS高级程序设计之class继承重点详解
2022/07/07 Javascript