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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值