在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生成器的使用方法
Nov 21 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
Python decimal模块使用方法详解
Jun 08 Python
基于selenium及python实现下拉选项定位select
Jul 22 Python
python安装mysql的依赖包mysql-python操作
Jan 01 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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
收集前端面试题之url、href、src
2018/03/22 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
浅析Python中的多进程与多线程的使用
2015/04/07 Python
python控制台中实现进度条功能
2015/11/10 Python
python字典DICT类型合并详解
2017/08/17 Python
浅析python协程相关概念
2018/01/20 Python
python批量获取html内body内容的实例
2019/01/02 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
python实现斗地主分牌洗牌
2020/06/22 Python
综合素质的自我鉴定
2013/10/07 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
计划生育宣传标语
2014/06/21 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
先进工作者申报材料
2014/12/23 职场文书
初中家长评语和期望
2014/12/26 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python