在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生成文件md5校验值函数的方法
Jan 10 Python
python机器学习之随机森林(七)
Mar 26 Python
对python中的pop函数和append函数详解
May 04 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
Python中Numpy ndarray的使用详解
May 24 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
python序列化与数据持久化实例详解
Dec 20 Python
Tensorflow Summary用法学习笔记
Jan 10 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 Python
python图片指定区域替换img.paste函数的使用
Apr 09 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
php中filter_input函数用法分析
2014/11/15 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
php for 循环使用的简单实例
2016/06/02 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
JavaScript使用cookie
2007/02/02 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
WebSocket的简单介绍及应用
2019/05/23 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python while 循环使用的简单实例
2016/06/08 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
比较基础的php面试题及答案-填空题
2014/04/26 面试题
妇科医生自荐信
2013/11/05 职场文书
开学寄语大全
2014/04/08 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
小学生作文评语集锦
2014/12/25 职场文书
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS