在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重新引入被覆盖的自带function
Jul 16 Python
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
Python Requests安装与简单运用
Apr 07 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
python skimage 连通性区域检测方法
Jun 21 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
python实现井字棋小游戏
Mar 04 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python pip 常用命令汇总
Oct 19 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 判断字符串中是否包含html标签
2014/02/17 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
js style动态设置table高度
2014/10/21 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
Vue.js添加组件操作示例
2018/06/13 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
用Python写的图片蜘蛛人代码
2012/08/27 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
python将回车作为输入内容的实例
2018/06/23 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
简单了解django缓存方式及配置
2019/07/19 Python
使用python远程操作linux过程解析
2019/12/04 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
美国鲜花递送:UrbanStems
2021/01/04 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
优秀的教师个人的中文求职信
2013/09/21 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
安全承诺书格式范本
2015/04/28 职场文书