运用python-dotenv更好的管理Python项目中的敏感配置信息

这几天看到Github上面的一个Python模块python-dotenv,他可以帮你把Python项目中的一些账号,密码等敏感信息存放在环境变量中,防止泄露。而我之前一般是用.ini文件来解决这个问题的,而现在新学到的这个方法似乎比我那个老方法更简单、便捷、安全

项目地址:https://github.com/theskumar/python-dotenv

使用

  1. 安装这个模块
    pip install python-dotenv

  2. 要使用这个模块我们需要在项目根目录下创建一个.env文件跟一个.py文件

    .
    ├── .env
    ├── main.py
    
  3. .env文件中填写我们的敏感配置信息

    # .env
    ACCOUNT=ADMIN
    PASSWORD=123456
    
  4. .py文件中调用load_dotenv函数

    这个函数的作用是解析.env文件,然后将里面的变量加载为环境变量

    # main.py
    
    import dotenv
    
    dotenv.load_dotenv()
    

    之后就可以在函数里面使用os.environos.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文件丢失的警告,默认为False
  • override: 是否覆盖原系统环境变量,默认为False
  • encoding: 读取文件时的编码

文件规则格式

键可以不用引号包裹,也可以用单引号包裹

值可以不用引号包裹,也可以用单引号或双引号包裹

等号左右的空格将会被忽略

没有值的变量

如果单写一个键,那么它将等于None

但如果写了一个键,并在后面加了一个等号,那么它将等于空字符串

变量

{NAME}

# .env
VAR1 = hello
VAR2 = world
VAR3 = ${VAR1}${VAR2}

image

注释

文字前面添加 #

可以在行首写,也可以在代码后面写,类似于Python

多行

单引号或双引号的值可以跨越多行,以下两个例子所表达的值是相等的

FOO = "first line
second line"
FOO = "first line\nsecond line"

转义

可以使用反斜杠进行转义:

  • 单引号包裹:\\\'

  • 双引号包裹:\\\'\a\b\f\n\r\t\v

posted @   幻非  阅读(387)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示