在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代理抓取并验证使用多线程实现
May 03 Python
python基础教程之序列详解
Aug 29 Python
Python切片用法实例教程
Sep 08 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
基于Django contrib Comments 评论模块(详解)
Dec 08 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
如何理解Python中包的引入
May 29 Python
Python 实现一个简单的web服务器
Jan 03 Python
用python制作个音乐下载器
Jan 30 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
php短网址和数字之间相互转换的方法
2015/03/13 PHP
如何打开php的gd2库
2017/02/09 PHP
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
js实现一键复制功能
2017/03/16 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
H5实现仿flash效果的实现代码
2017/09/29 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
Python贪心算法实例小结
2018/04/22 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
Wallis官网:英国女装零售商
2020/01/21 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
大学本科生的个人自我评价
2013/12/09 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
中学教师请假制度
2014/02/03 职场文书
客户接待方案
2014/02/26 职场文书
如何写一份好的英文求职信
2014/03/19 职场文书
安全协议书范本
2014/04/21 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技