在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高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
python实现文件快照加密保护的方法
Jun 30 Python
用Python编写简单的微博爬虫
Mar 04 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Python实现购物车购物小程序
Apr 18 Python
python 自动重连wifi windows的方法
Dec 18 Python
Python内置random模块生成随机数的方法
May 31 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
解决Pytorch训练过程中loss不下降的问题
Jan 02 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
Feb 28 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
获得Google PR值的PHP代码
2007/01/28 PHP
php Ajax乱码
2008/04/09 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
实例Python处理XML文件的方法
2015/08/31 Python
python中set常用操作汇总
2016/06/30 Python
Java及python正则表达式详解
2017/12/27 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
Python中过滤字符串列表的方法
2020/12/22 Python
篮球友谊赛通讯稿
2014/10/10 职场文书
联谊活动总结范文
2015/05/09 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
python数字图像处理:图像的绘制
2022/06/28 Python