Blueprint
- 出現的原因:在使用flask進行一個項目編寫的時候,可能會有許多個模塊,如果把所有的這些模塊都放在一個views.py文件之中,那麼最後views.py文件必然臃腫不堪,並且極難維護
- 原理:Blueprint其實本身只是對view上的接口進行了註冊,然後整體掛載在app上,Blueprint本身的目的就是
組織多模塊的平行共存
,避免直接在app上註冊view,Flask 中的Blueprint不是一個可插撥的應用,因爲它不是一個真正的應用,而是一套可以註冊 在應用中的操作
,並且可以註冊多次。
- 應用會在Flask層中進行統一管理,共享配置,通過註冊按需調用應用對象。
def create_app(config_name):
"""
創建flask的應用對象
:param config_name: 配置模式的模式的名字,['develop','product']
:return:
"""
app = Flask(__name__)
config_class = CONFIG_MAP.get(config_name)
app.config.from_object(config_class)
db.init_app(app)
global redis_store
redis_store = redis.StrictRedis(host=config_class.REDIS_HOST, port=config_class.REDIS_PORT)
Session(app)
CSRFProtect(app)
app.url_map.converters['re'] = ReConverter
from ihome import api_1_0
app.register_blueprint(api_1_0.api, url_prefix="/api_1_0")
from ihome import web_html
app.register_blueprint(web_html.html,)
return app