Flask配置方式

时间:2021-07-15 18:07:54

主要有三种方式处理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')