Flask工廠函數(shù)
我的目錄結(jié)構(gòu)
flask_project
-- config
-- __init__.py
-- config.py
-- settings.py
-- other_app
...
-- manage.py
基本示例
- config.py
定義工廠函數(shù)
from flask import Flask
from config.settings import config
from api.views import api
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
# 日志
register_logging(app)
# 注冊(cè)藍(lán)圖
register_blueprints(app)
# 數(shù)據(jù)庫(kù)
register_database(app)
# 異常處理
register_errors(app)
# 注冊(cè)自定義命令
register_commands(app)
return app
def register_logging(app):
pass
def register_blueprints(app):
app.register_blueprint(api, url_prefix='/api')
def register_database(app):
pass
def register_errors(app):
pass
def register_commands(app):
pass
- settings.py
不同環(huán)境的配置(測(cè)試/生產(chǎn)/正式)
class BaseConfig:
TEST = True
NUM = 10
config = {
'default': BaseConfig
}
- manage.py
總?cè)肟?/p>
from config.config import create_app
if __name__ == '__main__':
app = create_app('default') # 默認(rèn)環(huán)境
print(app.config['NUM']) # 獲取定義變量NUM
app.run()