在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读取图片EXIF信息类库介绍和使用实例
Jul 10 Python
Python实现从url中提取域名的几种方法
Sep 26 Python
Python入门篇之条件、循环
Oct 17 Python
python判断windows系统是32位还是64位的方法
May 11 Python
Python探索之ModelForm代码详解
Oct 26 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
高效使用Python字典的清单
Apr 04 Python
django 在原有表格添加或删除字段的实例
May 27 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
python实现KNN近邻算法
Dec 30 Python
python中spy++的使用超详细教程
Jan 29 Python
详解Python类和对象内容
Jun 22 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&&mysql)二
2006/10/09 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
秦兵马俑教学反思
2014/02/07 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
爱心捐款感谢信
2015/01/20 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
css height属性中的calc方法详解
2021/06/03 HTML / CSS
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
angular4实现带搜索的下拉框
2022/03/25 Javascript
使用scrapy实现增量式爬取方式
2022/06/21 Python
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers