Python 中配置变量的最佳实践

wg4*_*568 1 python

所以最近我的程序变得更加复杂,并且开始需要更多的配置。我一直在做以下事情,但感觉不对......

class config:
    delay = 1.3
    files = "path/to/stuff"
    name = "test"

dostuff(config.name) #etc...
Run Code Online (Sandbox Code Playgroud)

我从来都不是 ALL_CAPS_VARIABLE 方法的粉丝,并且想知道是否有一种“官方”方法可以做到这一点,以及我当前的方法是否有任何问题。

nsa*_*ana 5

我推荐使用python-decouple。该库允许从配置(数据)中分离代码。

更新:

简单说明这个库的用法:

只需在存储库的根目录中创建一个.env文本文件,格式如下:

DEBUG=True
TEMPLATE_DEBUG=True
EMAIL_PORT=405
SECRET_KEY=ARANDOMSECRETKEY
DATABASE_URL=mysql://myuser:mypassword@myhost/mydatabase
PERCENTILE=90%
#COMMENTED=42
Run Code Online (Sandbox Code Playgroud)

OBS:*.env你的.gitignore

在你的python代码上,可以这样使用:

from decouple import config

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)
Run Code Online (Sandbox Code Playgroud)