MS python学习(7)

Managing Keys - dotenv

Managing keys

usage of .env module

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

Reads the key,value pair from .env and adds them to environment variable.

将key明文(hard code)形式写在script里面不安全,所以推荐把所有用到的环境变量写到.env文件里,然后以普通变量的方式读取作为环境变量。

用法

最简单和最常见的用法是在应用程序启动时调用load_dotenv(),从当前目录或其父目录中的.env文件或指定的路径加载环境变量,然后你可以调用os.getenv()提供的与环境相关的方法。

.env 文件内容写法
dotenv
Note:
变量的值是下面列表中定义的第一个值:

  • 系统环境变量
  • .env 文件中定义的值
  • 默认值,如果有的话
  • 空字符串

安装

pip install -U python-dotenv
-U参数是安装最新版本

确保你的项目目录下 有 .env 文件

.
├── .env
└── settings.py
└──.gitignore

Note: 记得把做项目的时候把.env放到git ignore里面防止走光光。

test1.py

from dotenv import load_dotenv
import os

# load_dotenv()
load_dotenv(override=True)

password = os.getenv('PASSWORD')
mypath = os.getenv('PATH')

print('Show me the value from .env file:\n')
print(f'password:{password}\nmypath:{mypath}') 

使用load_dotenv()不加参数时:path的内容显示的是系统的path(因为系统的值为第一顺位)
在这里插入图片描述
加参数override=True可以优先使用.env里面的值
在这里插入图片描述

参数相关

通过load_dotenv ,你就可以访问像访问系统环境变量一样使用.env文件中的变量了,比如通过 os.genenv(key, default=None)

  • dotenv_path: 指定.env文件路径,当然如果不传该参数的话(默认为None)也会自定调用dotenv.find_dotenv()去查找文件位置的,但是你的文件名如果不是.env那就必须传递该参数了

  • override: 当.env 文件中有变量与系统中原来的环境变量有冲突时,按照上面的取值顺序,默认使用系统变量,如果要用.env中的变量覆盖系统变量,可以给load_dotenv() 传递参数override=True。此时只是临时使用了.env 中的变量值

  • encoding: load_dotenv() 也可以传递encoding 参数指定文件的编码方式。

内容参考自 https://blog.csdn.net/wanzheng_96/article/details/106753209

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值