在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 获取当前所在目录的方法详解
Aug 02 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
Django restframework 源码分析之认证详解
Feb 22 Python
Python logging设置和logger解析
Aug 28 Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 Python
Python random库使用方法及异常处理方案
Mar 02 Python
深入浅析pycharm中 Make available to all projects的含义
Sep 15 Python
Python 实现进度条的六种方式
Jan 06 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
Feb 01 Python
python之json文件转xml文件案例讲解
Aug 07 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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
做个自己站内搜索引擎
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
珊瑚虫IP库浅析
2007/02/15 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
$.format,jquery.format 使用说明
2011/07/13 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
python在不同层级目录import模块的方法
2016/01/31 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
Django logging配置及使用详解
2019/07/23 Python
python中def是做什么的
2020/06/10 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
药学专业大专生的自我评价
2013/12/12 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
幼儿教师培训感言
2014/03/08 职场文书
技术负责人任命书
2014/06/05 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
合作协议书模板
2014/10/10 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书