运用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

本网页由快兔兔AI采集器生成,目的为演示采集效果,若侵权请及时联系删除。

原文链接:https://www.cnblogs.com/huanfeiiiii/p/16068806.html

更多内容