最近又遇到了對環境變量讀取的問題,之前的學習很快會忘記~
仍是寫篇博客稍微記錄下比較好
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')