Flask工廠函數(shù)

Flask工廠函數(shù)

官網(wǎng)

我的目錄結(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()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容