美文网首页
通过import_string批量导入蓝图

通过import_string批量导入蓝图

作者: 胖虎很可爱 | 来源:发表于2018-05-22 16:24 被阅读0次

    条件:

    蓝图对象的名字与模块文件夹的名字相同,在app目录下方,例如:

    app
        -auth
        -admin
        ...
        
    在auth模块中的__init__中创建auth模块的蓝图对象,蓝图名称auth
    admin等其他模块格式与auth相同
    
    def create_app(config_name):
        # 参加Flask应用程序实例
        app = Flask(__name__)
        # 导入配置参数
        config_mode = config[config_name]
        app.config.from_object(config_mode)
        mail.init_app(app)
        
        
        filenames = os.listdir("app")
        # 利用os模块找到蓝图对象所在的路径
        for filename in filenames:
            if os.path.isdir("app/"+filename) and os.path.exists('app/'+filename+'/__init__.py'):
                bp = import_string('app.'+filename+':'+filename)
                app.register_blueprint(bp)
        print(app.url_map)
        print(app.config.get("NAME"))
        return app
    

    import_string(import_name, silent=False)

    • import_name:要导入的对象的模块或对象名称
    • silent:如果设置为True,则忽略导入错误,相反则返回None
    import_name 格式一般为:
    'app.auth:auth'
    silent参数可以省略
    

    相关文章

      网友评论

          本文标题:通过import_string批量导入蓝图

          本文链接:https://www.haomeiwen.com/subject/knfkjftx.html