发布于 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')
©2020 edoou.com   京ICP备16001874号-3