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