在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数据统计的一些小技巧
Jul 21 Python
Python常用算法学习基础教程
Apr 13 Python
Mac 上切换Python多版本
Jun 17 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
Python中实现单例模式的n种方式和原理
Nov 14 Python
详解如何在Apache中运行Python WSGI应用
Jan 02 Python
解析python的局部变量和全局变量
Aug 15 Python
Python字典的概念及常见应用实例详解
Oct 30 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
Nov 06 Python
python 获取剪切板内容的两种方法
Nov 28 Python
Python中异常处理用法
Nov 27 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 xml-rpc远程调用
2008/12/19 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
php fread函数使用方法总结
2019/05/28 PHP
jQuery中的常用事件总结
2009/12/27 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
JS分页的实现(同步与异步)
2017/09/16 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
Python 使用type来定义类的实现
2019/11/19 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
Python 必须了解的5种高级特征
2020/09/10 Python
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
.net工程师笔试题
2012/06/09 面试题
岗位职责定义及内容
2013/11/08 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
三八节主持词
2014/03/17 职场文书
生物学专业求职信
2014/07/23 职场文书
拆迁委托协议书
2014/09/15 职场文书
艺术节开幕词
2015/01/28 职场文书
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
JavaScript 数组去重详解
2021/09/15 Javascript
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android