flask 工廠函式啟動的好處
程式的工廠函式在app包的構造檔案中定義,即__init__.py。這個構造檔案匯入大多數正在使用的Flask擴充套件。不過由於尚未初始化所需的程式例項,所以沒有初始化擴充套件,建立擴充套件類時也沒有向建構函式傳入引數。create_app()函式就是程式的工廠函式,他接受一個程式使用的配置名作為引數,該配置名在config.py檔案中定義。程式建立,配置後,就能初始化擴充套件了。在之前建立的擴充套件物件上呼叫init_app()可以完成初始化過程。
在我們開始學習FLask的時候,建立應用的例項是用app=Flask(name)來做的,但是當我們想建立多個不同配置的例項的時候咋辦呢,每次都要改是不是很煩,那為了減少麻煩,我們可以採用呼叫一個create_app函式來返回應用例項的方法,這就是工廠方法的大概意思啦!
文字說的再多也難以幫助理解,看程式碼示例:
1.最初的寫法
from flask import Flask from myapp.admin import admin import config app = Flask(__name__) app.config.from_object('config') app.register_blueprint(admin) from myapp import views
from myapp import app app.run(host='0.0.0.0')
2.改進,用工廠模式來建立應用
from flask import Flask from flask.ext.mail import Mail from flask.ext.sqlalchemy import SQLAlchemy from werkzeug.utils import import_string mail = Mail() db = SQLAlchemy() blueprints = [ 'myapp.main:main', 'myapp.admin:admin', ] def create_app(config): app = Flask(__name__) app.config.from_object(config) # Load extensions mail.init_app(app) db.init_app(app) # Load blueprints for bp_name in blueprints: bp = import_string(bp_name) app.register_blueprint(bp) return app
from flask import Blueprint main = Blueprint('main', __name__) from myapp.main import views
from myapp.main import main @main.route('/') def index(): return '<h1>Hello World from app factory!</h1>'
run.py用了工廠函式之後,啟動就要呼叫工廠函式建立應用例項再啟動
from myapp import create_app import config app = create_app('config') app.run(host='0.0.0.0', debug=True)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2768/viewspace-2836916/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 工廠模式的函式模式函式
- Javascript 之中的 class/建構函式/工廠函式JavaScript函式
- 【譯】JavaScript 工廠函式 vs 建構函式JavaScript函式
- python匿名函式的好處Python函式
- js柯里化函式的好處JS函式
- Python常見工廠函式用法示例Python函式
- js之工廠建構函式模式(譯)JS函式模式
- 工廠模式與抽象工廠!到底有好厲害!模式抽象
- 在 Flask 專案中使用 Celery(with 工廠模式 or not)Flask模式
- Python中使用內層函式的好處Python函式
- SAP UI5 資料繫結中的工廠函式UI函式
- 私有建構函式的應用與靜態工廠模式函式模式
- Angular 依賴注入學習筆記之工廠函式的用法Angular依賴注入筆記函式
- PG啟動流程StartupXlog函式回放日誌前處理函式
- 【python Flask】用uwsgi 啟動flask 服務方式PythonFlask
- 工廠模式建立物件和自定義建構函式建立物件的異同模式物件函式
- 建立型:工廠模式-工廠方法、抽象工廠模式抽象
- 簡單工廠,工廠方法和抽象工廠抽象
- [譯] ES6+ 中的 JavaScript 工廠函式(第八部分)JavaScript函式
- javascript基礎(this,工廠方法來建立物件,建構函式建立物件)(十六)JavaScript物件函式
- 簡單工廠 VS 工廠方法 VS 抽象工廠抽象
- 簡單工廠、工廠方法和抽象工廠模式抽象模式
- 損失函式+啟用函式函式
- 啟用函式的作用函式
- iOS APP啟動-Main函式之前的那些事兒iOSAPPAI函式
- 關於雲函式冷啟動優化的思考函式優化
- HG6821M開啟工廠模式模式
- oracle函式大全-字串處理函式Oracle函式字串
- 一篇搞定工廠模式【簡單工廠、工廠方法模式、抽象工廠模式】模式抽象
- 工廠方法、建構函式、原型物件——JS基礎學習筆記(四)函式原型物件JS筆記
- 簡單工廠和抽象工廠的區別抽象
- 綜合使用抽象工廠、工廠方法的應用抽象
- 從APP工廠到遊戲工廠?位元組跳動進攻騰訊腹地APP遊戲
- WPF啟動流程-自己手寫Main函式AI函式
- 讀取工藝路線的函式函式
- 好的精益工廠佈局需要考慮哪些問題?
- 簡單工廠模式、工廠模式、抽象工廠模式比較模式抽象
- 簡單工廠模式—>工廠模式模式