envfile语法.整数(如PORT)应该如何写入



我想知道这些配置是否相同:

配置1:

EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_USE_SSL=None

配置2:

EMAIL_PORT='587'
EMAIL_USE_TLS='True'
EMAIL_USE_SSL='None'

settings.py(或者只是一个随机的python文件(:

EMAIL_PORT = os.getenv('EMAIL_PORT')
EMAIL_USE_TLS = os.getenv('EMAIL_USE_TLS')
EMAIL_USE_SSL = os.getenv('EMAIL_USE_SSL')

我的,比方说settings.py中的EMAIL_PORT会得到587的值吗?或者它将改为'587',或者如果EMAIL_USE_TLS将得到Python布尔值True'True'?在envfile中分配变量的建议是什么?如何处理此类布尔值、整数或任何其他非字符串值?

谢谢!

如Python文档中所述,os.getenv将始终返回一个str:

键,默认值和结果为str.

(强调矿(

对于端口,您可以简单地执行以下操作:

EMAIL_PORT  = int(os.getenv('EMAIL_PORT'))

但对于布尔值,我会在env中设置一个0或1的值,这样您就可以执行以下操作:

配置:

EMAIL_USE_TLS=1

Python:

EMAIL_USE_TLS = bool(int(os.getenv('EMAIL_USE_TLS')))

这两种方法都依赖于环境变量的正确性,因此您可能需要添加错误处理。

最新更新