在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开发WebService系列教程之REST,web.py,eurasia,Django
Jun 30 Python
Python os模块介绍
Nov 30 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 Python
Python检测网站链接是否已存在
Apr 07 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
关于Python错误重试方法总结
Jan 03 Python
python 模块重载的五种方法
Apr 24 Python
Python pandas求方差和标准差的方法实例
Aug 04 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类
2008/04/09 PHP
php email邮箱正则
2008/10/08 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
很可爱的输入框
2008/08/03 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
javascript类型转换示例
2014/04/29 Javascript
jquery使用经验小结
2015/05/20 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
django解决跨域请求的问题
2018/11/11 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
Python阶乘求和的代码详解
2020/02/14 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
2014普法依法治理工作总结
2014/12/18 职场文书
运动会跳远广播稿
2015/08/19 职场文书
python数字图像处理实现图像的形变与缩放
2022/06/28 Python