工厂函数是Flask中一种常用的应用组织模式,它通过一个函数来创建和配置Flask应用实例,这种方式提供了更大的灵活性和更好的可测试性。其本质是将flask应用实例的创建和配置代码分离出来,让启动文件中引用创建函数即可,让启动文件app.py变得整洁,让应用实例的配置测试变得方便。
在项目根目录下创建一个名为app的python包。在此包的__init__.py文件中编写工厂函数。函数命名为create_app(),在此函数中创建flask应用实例。代码如下:
from flask import Flask
from .photo.view import photo_bp
from .user.view import user_bp
from .article.view import article_bp
from .exts import db, mail, migrate
from config import Config
def create_app():
app = Flask(__name__, template_folder='../templates', static_folder='../static')
# 加载配置文件
app.config.from_object(Config)
# 初始化db对象
db.init_app(app)
# 数据库迁移配置
migrate.init_app(app, db)
# 邮箱配置
mail.init_app(app)
# 注册蓝图
app.register_blueprint(user_bp)
app.register_blueprint(article_bp)
app.register_blueprint(photo_bp)
return app
在__init__.py文件中定义完成工厂函数后,在启动文件app.py中导入,如下:
from app import create_app
app = create_app()
if __name__ == '__main__':
app.run
评论区 0