flask启动各种方式,

  flask启动各种方式,

  程序的工厂函数定义在app包的构造文件中,即__init__.py,这个配置文件导入了大部分正在使用的Flask扩展。但是,由于所需的程序实例尚未初始化,因此扩展尚未初始化,并且在创建扩展类时没有参数传递到构造函数中。函数是一个程序的工厂函数。它接受程序使用的配置名作为参数,配置名在config.py文件中定义。在创建和配置程序之后,可以初始化扩展。对之前创建的扩展对象调用init_app()来完成初始化过程。

  刚开始学习FLask的时候,我们使用app=Flask(name)来创建应用实例,但是当我们想创建多个配置不同的实例时,该怎么办呢?每次都换很烦吗?然后为了减少麻烦,我们可以调用一个create_app函数返回应用实例,这就是工厂方法的一般含义!

  无论你说多少话,都很难理解。请参见代码示例:

  1.原始的写作方法

  fromflaskimportFlask

  frommyapp.adminimportadmin

  导入配置

  app=Flask(__name__)

  app . config . from _ object(" config ")

  app.register_blueprint(管理)

  frommappimportviewsfrommaypimportapp

  App.run(host=0.0.0.0)2。改进,使用工厂模式创建应用程序。

  fromflaskimportFlask

  fromflask.ext.mailimportMail

  from flask . ext . sqlalchemyimportsqlalchemy

  fromwerkzeug . utilsimportimport _ string

  mail=Mail()

  db=SQLAlchemy()

  蓝图=[

   myapp.main:main ,

   myapp.admin:admin ,

  ]

  defcreate_app(配置):

  app=Flask(__name__)

  app . config . from _对象(配置)

  #加载扩展

  mail.init_app(应用程序)

  数据库初始化应用程序(应用程序)

  #加载蓝图

  forbp _ nameinblueprints:

  bp=导入字符串(bp名称)

  app.register _蓝图(bp)

  returnappfromflaskimportblue print

  main=Blueprint(main ,__name__)

  from myapp . mainimportviewsfrommaypp . mainimportmain

  @main.route(/)

  definedex():

  返回“h1HelloWorldfromappfactory!/h1run.py使用工厂函数后,启动前需要调用工厂函数创建应用实例。

  frommyappimportcreate_app

  导入配置

  app=create_app(config )

  app.run(host=0.0.0.0 ,debug=True)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: