在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基于回溯法子集树模板解决数字组合问题实例
Sep 02 Python
Python自动化运维之IP地址处理模块详解
Dec 10 Python
python抓取文件夹的所有文件
Feb 27 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
Python3多线程基础知识点
Feb 19 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
Python with用法:自动关闭文件进程
Jul 10 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
Dec 23 Python
python 发送邮件的四种方法汇总
Dec 02 Python
Python基于Opencv识别两张相似图片
Apr 25 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
新52大事件
2020/03/03 欧美动漫
php $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
用JS实现的一个include函数
2007/07/21 Javascript
大家未必知道的Js技巧收藏
2008/04/07 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
Node.js 基础教程之全局对象
2017/08/06 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
利用Python获取操作系统信息实例
2016/09/02 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
实习生自我鉴定范文
2013/12/05 职场文书
运动会入场式解说词
2014/02/18 职场文书
犯错检讨书
2014/02/21 职场文书
员工保密协议书
2014/09/27 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
初三毕业评语
2014/12/26 职场文书
名人传读书笔记
2015/06/26 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle