最近又遇到了对环境变量读取的问题,之前的学习很快会忘记~
仍是写篇博客稍微记录下比较好
python
首先咱们都应该知道在日常的开发中咱们常常会配置一些系统环境变量。
不管是windows系统或者是linux系统,好比:linux
# Windows set test=123 # Linux export test=123
再而咱们在进行web开发的时候也会遇到各类,变量的控制
好比导入开发(default)和生产环境(prod)不一样的环境变量git
DEBUG=True SECRET_KEY='abcddddd' ALLOWED_HOSTS='*' MAIL_USERNAME=xxxx@xx.com MAIL_PASSWORD=abcdefg
这里记录一下开发时常常用到的方法。github
即在咱们运行咱们项目以前,直接利用export的方式导入咱们须要的环境变量
而后在项目中使用os导入web
# shell命令行 export test=123 # **注意这里没有空格** # 项目中 import os os.environ.get('test')
如下的各类方式也是间接利用了export或者相似思想docker
python-dotenv githubshell
从.env文件中读取键值对,并将它们添加到环境变量中windows
pip install -U python-dotenv # 安装 env.dotenv_path = '/opt/myapp/.env' # 指定文件
env_file: .env env_file: - .env
if os.path.exists('.env'): print('Importing environment from .env...') for line in open('.env'): var = line.strip().split('=') if len(var) == 2: key, value = var[0].strip(), var[1].strip() os.environ[key] = value
参考自:https://blog.csdn.net/u010180339/article/details/78682575
web开发的时候不免会有不一样的环境变量,只要是能够指定文件目录的均可以使用这种方式
以environs为例
env = environ.Env() env.read_env('envs/.env.%s'%(env.str('PROJECT_ENV','prod')))
而后在启动web应用的时候,咱们指定相应的环境类型就好了
很是方便
PROJECT_ENV=dev python manage.py runserver
PS:固然这些库也不少本身基本的方法,能够 进入官网探索下
好比environs对不一样类型能够指定
SECRET_KEY = env.str('SECRET_KEY') DEBUG = env.bool('DEBUG', False) ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')