Flask懒加载时 moles.py 无法运行

本文介绍了在Flask应用中采用懒加载时遇到的问题,即在init.py中设置懒加载后,无法在models模块中创建对象。通过从manager启动文件导入create_app实现懒加载,导致对象只能在views视图中创建。为了解决这个问题,提供了两种解决方案:一是直接在启动文件中实例化app,二是通过调整表单中数据库查询的方式。参考了相关博主的方法并适用于个人项目。
摘要由CSDN通过智能技术生成
 

1、在init.py中进行懒加载设置,则无法在models模块中创建对象。

def creat_app(env):
    # 实例化flask
    app = Flask(__name__)
    # 初始化配置
    app.config.from_object(envs.get(env))
    # 初始化路由
    init_home_blue(app)
    init_admin_blue(app)
    init_first_blue(app)
    # 初始化第三方
    init_ext(app)
    return app

2、然后再丛manager启动文件导入create_app,实现懒加载

# 懒加载导入app对象
from App import creat_app

3、结果:只能在views视图中创建具体的对象

@blue.route('/addperson/')
def add_person():
    role = Role(
        name='超级管理员',
        auths=''
    )
    db.session.add(role)
    db.session.commit()
    return 'Add Success'

4、如果要在models.py中创建则需要

方式一 直接实例化app 不要写哪个create_app函数了,在启动文件中直接导入app对象:


                
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值