V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
linuxs
V2EX  ›  Flask

《flask web 开发》使用程序工厂函数没有看懂。

  •  
  •   linuxs · Sep 7, 2016 · 4784 views
    This topic created in 3523 days ago, the information mentioned may be changed or developed.

    bootstrap = Bootstrap()

    mail = Mail()

    moment = Moment()

    db = SQLAlchemy()

    def create_app(config_name):

    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)
    
    bootstrap.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    db.init_app(app)
    
    return app
    

    ~

    这段没看懂,希望大家帮忙解释一下。谢谢

    linuxs
        1
    linuxs  
    OP
       Sep 7, 2016
    这里 create_app 函数里的 config_name 这个参数是不是函数上 mail , db , moent 等这些实例呢?

    app.config.from_object(config[config_name]) 这段是将配置的程序导入到程序那么 config[config_name].init_app(app)这段是做什么的呢?
    liverpoolpjy
        2
    liverpoolpjy  
       Sep 8, 2016
    在你的 config.py 里有一个字典:
    config = {
    'development': DevelopmentConfig,
    'testing': TestingConfig,
    'production': ProductionConfig,

    'default': DevelopmentConfig
    }
    config_name 是选择用哪里个配置

    config[config_name].init_app(app) 也是在 config.py 里面定义的。
    @staticmethod
    def init_app(app):
    pass
    那个教程里好像是个空函数
    keelii
        3
    keelii  
       Sep 8, 2016
    其实就是做一些关联动作,使得 插件和主程序 之间共享一些数据
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2508 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:18 · PVG 20:18 · LAX 05:18 · JFK 08:18
    ♥ Do have faith in what you're doing.