运用python-dotenv更好的管理Python项目中的敏感配置信息
这几天看到Github上面的一个Python模块python-dotenv
,他可以帮你把Python项目中的一些账号,密码等敏感信息存放在环境变量中,防止泄露。而我之前一般是用.ini
文件来解决这个问题的,而现在新学到的这个方法似乎比我那个老方法更简单、便捷、安全
项目地址:https://github.com/theskumar/python-dotenv
使用
-
安装这个模块
pip install python-dotenv
-
要使用这个模块我们需要在项目根目录下创建一个
.env
文件跟一个.py
文件. ├── .env ├── main.py
-
.env
文件中填写我们的敏感配置信息# .env ACCOUNT=ADMIN PASSWORD=123456
-
.py
文件中调用load_dotenv
函数这个函数的作用是解析
.env
文件,然后将里面的变量加载为环境变量# main.py import dotenv dotenv.load_dotenv()
之后就可以在函数里面使用
os.environ
或os.getenv
来调取环境变量了import os print(os.environ['ACCOUNT']) print(os.getenv('PASSWORD')) >>> ADMIN 123456
扩展
load_dotenv
参数:
dotenv_path
:.env
文件的路径stream
: 带有.env
内容的io.StringIO
文本,当dotenv_path
为None使用verbose
: 是否输出.env
文件丢失的警告,默认为Falseoverride
: 是否覆盖原系统环境变量,默认为Falseencoding
: 读取文件时的编码
文件规则格式
键可以不用引号包裹,也可以用单引号包裹
值可以不用引号包裹,也可以用单引号或双引号包裹
等号左右的空格将会被忽略
没有值的变量
如果单写一个键,那么它将等于None
但如果写了一个键,并在后面加了一个等号,那么它将等于空字符串
变量
用{NAME}
# .env
VAR1 = hello
VAR2 = world
VAR3 = ${VAR1},${VAR2}
注释
文字前面添加 #
可以在行首写,也可以在代码后面写,类似于Python
多行
单引号或双引号的值可以跨越多行,以下两个例子所表达的值是相等的
FOO = "first line
second line"
FOO = "first line\nsecond line"
转义
可以使用反斜杠进行转义:
-
单引号包裹:
\\
,\'
-
双引号包裹:
\\
,\'
,\a
,\b
,\f
,\n
,\r
,\t
,\v
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?