前言
之前就经常用,今天来凑个篇数.
在开发的过程中,我们经常会将代码中某些可能更改的,比如redis地址,数据库地址,限流阈值等参数写活来提高灵活性,
传统的方式可能是写在配置文件中,比如 xml yml 等文件中解析.
但这种文件的方式配合 Docker 使用较为麻烦,
于是,将配置写入环境变量的方式逐渐流行起来,这种方式更适合 Docker 使用
本文介绍如何在Python中实现环境变量的插入与读取
正文
插入环境变量
.env文件
当然,在读取之前需要插入环境变量,这一步可以由 Docker 解决,但是在开发中我们一般不会使用 Docker 打包后再测试
一般的,我们会在项目的根目录新建一个 .env 文件,里面保存在项目启动前需要写入的环境变量,我们在测试时可先插入环境变量来完成配置写入
.env 文件大致如下
其实就是每行为一个要插入的变量, 结构为 k=v
注意环境变量写入的都是字符串,不存在别的类型
同时还要注意避免与系统自带的环境变量冲突,比如系统变量已经有了 path 而你自定义也叫 path 可能会因为覆盖而出现混乱
所以在设置环境变量时一般会在最前面加上该项目代号,比如上图项目叫 CHAOS
环境变量k一般全部大写
写入环境变量
使用os与sys模块可以实现单条导入,但是一个文件需要自己手动实现,而有其他模块可以帮助我们解决
GitHub
pip install python-dotenv
我们一般在项目开始读取配置文件,所以测试时在读取之前写入一遍
比如在启动文件 main.py 中调用 config.py 读取配置, 那么在 config.py 开头先读取 .env 文件并用 dotenv 模块写入
以上代码可导入 config.py 上一级目录的 .env 文件写入环境变量(实际目录结构的更改影响此代码)
读取环境变量
环境变量的读取直接使用 os 模块即可