顺便说下,dotenv
似乎不会转换布尔类型。
所以你在env
配置MAIL_USE_TSL=True
,用os.getenv('MAIL_USE_TSL')
获取的变量还是字符串,最后赋值给MAIL_USE_TSL
。造成的一个bug就是如果设置了False
是不会成功的。因为
>>> bool('False')
True
测试代码:
.env
:
boolean1 = True
boolean2 = true
boolean3 = 'true'
load.py
:
import os
from dotenv import load_dotenv
dotenv_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '.env')
if os.path.exists(dotenv_path):
load_dotenv(dotenv_path, override=True)
for b in ('boolean1', 'boolean2', 'boolean2'):
print(type(os.getenv(b)), os.getenv(b))
# print
# <class 'str'> True
# <class 'str'> true
# <class 'str'> true