在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运行效率的方法之间的对比
Apr 03 Python
python传递参数方式小结
Apr 17 Python
详解C++编程中一元运算符的重载
Jan 19 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
python多线程共享变量的使用和效率方法
Jul 16 Python
对Django中内置的User模型实例详解
Aug 16 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
Pycharm快捷键配置详细整理
Oct 13 Python
Django数据统计功能count()的使用
Nov 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/03 咖啡文化
第十三节 对象串行化 [13]
2006/10/09 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
js时间比较示例分享(日期比较)
2014/03/05 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
Python创建日历实例
2014/08/21 Python
django实现分页的方法
2015/05/26 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python实现数据库跨服务器迁移
2018/04/12 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
利用python生成照片墙的示例代码
2020/04/09 Python
django rest framework 过滤时间操作
2020/07/12 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
链表面试题-一个链表的结点结构
2015/05/04 面试题
新驾驶员个人自我评价
2014/01/03 职场文书
车祸赔偿收入证明
2014/01/09 职场文书
运动会入场词200字
2014/02/15 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers