玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python flask工厂函数不是很理解请指导

flask web,说到了工厂函数,不是很理解,请大神来指教一下,上源码。

app/init.py:程序包的构造文件

from flask import Flask, render_template
from flask.ext.bootstrap import Bootstrap
from flask.ext.mail import Mail
from flask.ext.moment import Moment
from flask.ext.sqlalchemy import SQLAlchemy
from config import config

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

例子中工厂函数 create_app 的真正目的其实只有一个————根据应用的不同使用场景来使用不同的配置,核心是为了实现:

app.config.from_object(config[config_name])

因此,要把应用的实例创建的过程交给工厂函数,通过工厂函数选择你所要使用的配置,来创建适用于不同环境下的应用

补充wslshanlin的回答。
如果将
create_app
中的代码挪到全局命名空间(也就是manager.py)中,会出现多个app的config发生冲突等莫名其妙的问题。

这么做的目的在于:

大概意思就是,方便批量生产 app。你用这个 create_app 函数方法可以创建万千上万个 app。

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd18634.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 17时11分53秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules