Flask - 環境變量和應用配置

dotenv可以從根據文件配置環境變量,然後flask再根據環境變量進行應用配置。

項目目錄:

./
├── Dockerfile
├── Pipfile
├── Pipfile.lock
├── README.md
├── app
│   ├── __init__.py
│   ├── setting.py  # app.config
│   ├── models
│   │   ├── __init__.py
│   │   └── message.py
│   └── routes
│       ├── __init__.py
│       └── message.py
├── docker-local-entry.sh
├── .env  # load_dotenv
├── gunicorn.conf.py
├── logging.conf
└── wsgi.py

.env

FLASK_ENV='development'
FLASK_DEBUG='True'
JWT_SECRET_KEY='yoursercretkey'
CORS_HEADERS='Content-Type'

/app/setting.py

from os import environ
JWT_SECRET_KEY=environ.get('JWT_SECRET_KEY')
CORS_HEADERS=environ.get('CORS_HEADERS')

簡化 /app/__init__.py

from dotenv import load_dotenv
from flask import Flask

app = Flask(__name__)
load_dotenv()
app.config.from_pyfile('setting.py')
print(app.config)

if __name__ == '__main__'
  app.run(load_dotenv=True)

其實app實例的run方法也有一個load_dotenv屬性。

但是這個開啓後只能設置FLASK內置的環境變量(FLASK_開頭的變量)。如果FLASK_DEBUG='False',則無法對JWT_SECRET_KEY等自定義變量設置。如果FLASK_DEBUG='True',則可以對自定義環境變量進行應用設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章