python-decouple简介
该篇文章主要翻译于:https://pypi.python.org/pypi/python-decouple/
有不对的地方望各位大神指出,谢谢。
decouple简介:
将设置从代码中分离开
decouple将帮助你解析你的程序配置文件,达到更改你的设置而不用重新部署程序的效果
为什么要使用decouple?
通常情况下,web框架会设置不同种类的参数:
为什么我们不直接使用环境变量呢?
if os.environ['DEBUG']:print True else:print False
Decouple的安装:
pip install python-decouple
from decouple import config
2. 获取配置参数
SECRET_KEY = config('SECRET_KEY') DEBUG = config('DEBUG', default=False, cast=bool) EMAIL_HOST = config('EMAIL_HOST', default='localhost') EMAIL_PORT = config('EMAIL_PORT', default=25, cast=int)
[settings] DEBUG=True TEMPLATE_DEBUG=%(DEBUG)s SECRET_KEY=ARANDOMSECRETKEY DATABASE_URL=mysql://myuser:mypassword@myhost/mydatabase PERCENTILE=90%% #COMMENTED=42
在你的程序的根目录中创建一个.env文件,例如:
DEBUG=True
TEMPLATE_DEBUG=True
SECRET_KEY=ARANDOMSECRETKEY
DATABASE_URL=mysql://myuser:mypassword@myhost/mydatabase
PERCENTILE=90%
#COMMENTED=42
# coding: utf-8 from decouple import config from unipath import Path from dj_database_url import parse as db_urlBASE_DIR = Path(__file__).parentDEBUG = config('DEBUG', default=False, cast=bool) TEMPLATE_DEBUG = DEBUGDATABASES = {'default': config('DATABASE_URL',default='sqlite:///' + BASE_DIR.child('db.sqlite3'),cast=db_url) }TIME_ZONE = 'America/Sao_Paulo' USE_L10N = True USE_TZ = TrueSECRET_KEY = config('SECRET_KEY')EMAIL_HOST = config('EMAIL_HOST', default='localhost') EMAIL_PORT = config('EMAIL_PORT', default=25, cast=int) EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD', default='') EMAIL_HOST_USER = config('EMAIL_HOST_USER', default='') EMAIL_USE_TLS = config('EMAIL_USE_TLS', default=False, cast=bool)# ...
注意没有定义的参数:
SECRET_KEY = config('SECRET_KEY'),在.env中
都有一个默认的配置参数。
'SECRET_KEY'在
.env文件中一直都没有,decouple 将抛出一个UndefinedValueError
DEBUG=True python manage.py
这是什么原理呢?
Decouple 有5个类:
- Config
- 检索配置文件所在的位置
- RepositoryIni
- 按照顺序从os.environ,ini文件中读取值
- 注意:从3.0开始unix环境变量高于配置文件变量
- RepositoryEnv
- 按照顺序从os.environ,.env文件中读取值
- 注意:从3.0开始unix环境变量高于配置文件变量
- RepositoryShell
- 只是从os.environ中获取环境变量
- AutoConfig
- 检查你使用的配置
- 它将从你的配置模块路径递归的搜索settings.ini或者.env文件
一个简单的例子:
.evn文件
user_info=root port=3306 ipadd=127.0.0.1 switch=on
pyton解析文件:
import decouple config = decouple.AutoConfig() ipadd = config('ipadd') print ipadd
学习python介绍一个开源项目bootcamp,这个项目可以让你很快的入门django:
https://github.com/vitorfs/bootcamp
转载于:https://www.cnblogs.com/leeronggui/p/5380050.html
python-decouple简介相关推荐
- 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介
本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1. ...
- Python列表简介
Python列表简介 什么是列表 #普通的变量定义形式 tom ='Tom' jack ='Jack' john ='John'pet1 ='cat' pet2 ='dog' pet3 ='bird' ...
- Python编程简介
Python编程简介 2011年06月23日 NOTE: The following is a short tutorial about python program, for Chinese rea ...
- 大数据教程【05.01】--Python 数据分析简介
更多信息请关注WX搜索GZH:XiaoBaiGPT Python数据分析简介 本教程将介绍如何使用Python进行大数据分析.Python是一种功能强大且易于使用的编程语言,具备丰富的数据分析库和工具 ...
- Python基础知识(Python的简介、Python环境的安装、集成开发环境Pycharm的安装)
1.Python的简介 python是跨平台的计算机语言.解释型语言.交互式语言.面向对象语言.初学者最好学的语言 什么是跨平台:意思就是说可以在很多操作系统中执行.比如:可以在windows操作系统 ...
- Python Notebook简介
windows下面安装和使用Python, IPython NoteBook (详细步骤) Python Notebook简介1 IPython notebook目前已经成为用Python做教学.计算 ...
- python画图简介
python画图简介 1.seaborn学习资料 2.matplotlib学习资料 3.扩展学习资料 4.实际练习 5.常用命令(待补充) 6.常用知识点备查 6.1 plt的默认属性rc参数 6.2 ...
- Python库简介之pylab
Python库简介之pylab 转载于 链接: https://blog.csdn.net/qq_34519492/article/details/96437901 https://blog.csdn ...
- python笔记-简介
一Python的简介 一历史简介 Python诞生于1991年,目前有27年了,比1995年的JAVA语言都早了4年,为何大器晚成? 其一,在1990那个年代,计算机性能相比现在差很多,程序执行速度和 ...
- Indigo | Indigo(Python)简介、安装与入门
Indigo简介 Bingo: 针对Oracle,Microsoft SQL Server和PostgreSQL数据库的化学搜索引擎 Indigo: U具有与.NET,Java和Python绑定的通用 ...
最新文章
- Can't connect to MySQL server on 'localhost' (1...
- 启动项目出现com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException异常解决方法
- 库克宣布苹果将捐款帮助山西
- sklearn报错DeprecationWarning: the imp module is deprecated in favour of importlib
- python选择排序算法图解_简单选择排序算法(C语言详解版)
- i++与++i的区别+汇编分析
- HTC G14解锁S OFF 刷机 获取ROOT权限
- git tag (打标签)
- Kaggle注册及绑定手机号
- 苹果电脑表格取消自动计算机,苹果电脑excel序列被隐藏怎么办
- 手机电脑传文件?教你三种最简单的方法!
- 不能学习vlan的解决
- 日撸 Java 三百行: DAY1 AND DAY2
- Promise: 手写Promise
- 数据结构--图的存储结构
- Verilog HDL学习笔记
- Vue项目在ie浏览器打不开的解决办法
- 使用函数求e的近似值 C语言 PTA
- IDA dword_xxx DCD 0xxxx用十六进制数表示的字符串解读
- mobx系列(二)-mobx主要概念
热门文章
- 字节跳动 8 年,抖音、头条的技术能力开发者都可以用起来了!
- RC / RL串联电路计算
- 360n6pro刷鸿蒙系统,360手机N6Pro有没事用win10刷机成功的交流一下心得
- ios漂亮的启动动画
- java跑酷游戏_HTML5游戏实战(1):50行代码实现正面跑酷游戏
- html5中表格怎么写,HTML5制作表格样式本
- 信念就是一种观念对不对_思路决定出路 观念决定方向 性格决定命运 要改变命运 先确立信念...
- 软件工程概述思维导图总结(二)
- 银行管理系统java论文_基于java的银行账户管理系统的设计与实现毕业论文.doc
- iOS基础教程:记录从零开始到APP发布过程