发布于 4年前
Flask配置方式
主要有三种方式处理flask的配置。
在主脚本配置
做一些小应用可以直接在flask的主脚本里添加配置。
from flask import Flask
app = Flask(__name__)
app.config['SECRET_KEY'] = 'some secret words'
app.config['DEBUG'] = True
app.config['ITEMS_PER_PAGE'] = 10
单独的配置文件
在一些大的应用里建议单独出配置文件,这样代码结构更清晰,有利于代码管理。
config.py
SECRET_KEY = 'mysecretkey'
DEBUG = True
ITEMS_PER_PAGE = 10
Flask实例导入配置
import config
...
app = Flask(__name__)
app.config.from_object(config)
...
给不同环境创建独立的配置
项目在不同的环境(开发,测试和产品)下,它的配置是不同的。
项目目录结构示例:
requirements.txt
run.py
config/
__init__.py # 空的,只是用来告诉Python它是一个包。
default.py
production.py
development.py
test.py
instance/
config.py
yourapp/
__init__.py
models.py
views.py
static/
templates/
在config文件夹下分别按不同的环境添加配置:
- default.py:默认配置
- production.py:产品包配置
- development.py:开发环境的配置
- test.py:测试环境的配置
在start.sh定义所处的环境变量:
产品环境start.sh
APP_CONFIG_FILE=/var/www/yourapp/config/production.py
python run.py
在yourapp/__init__.py加载配置:
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config.default')
app.config.from_pyfile('config.py') # 从instance文件夹中加载配置
app.config.from_envvar('APP_CONFIG_FILE')