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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 工廠模式的函式模式函式
- python匿名函式的好處Python函式
- 【譯】JavaScript 工廠函式 vs 建構函式JavaScript函式
- js柯里化函式的好處JS函式
- Python常見工廠函式用法示例Python函式
- PG啟動流程StartupXlog函式回放日誌前處理函式
- SAP UI5 資料繫結中的工廠函式UI函式
- 在 Flask 專案中使用 Celery(with 工廠模式 or not)Flask模式
- Angular 依賴注入學習筆記之工廠函式的用法Angular依賴注入筆記函式
- 拉動式生產的好處是什麼?
- 【python Flask】用uwsgi 啟動flask 服務方式PythonFlask
- 工廠模式建立物件和自定義建構函式建立物件的異同模式物件函式
- 啟用函式的作用函式
- 關於雲函式冷啟動優化的思考函式優化
- iOS APP啟動-Main函式之前的那些事兒iOSAPPAI函式
- 工廠做能耗線上管理可以給企業帶來什麼好處?
- 什麼是https?網站啟動https的好處有哪些?HTTP網站
- WPF啟動流程-自己手寫Main函式AI函式
- 動畫函式的繪製及自定義動畫函式動畫函式
- render函式處理動態獲取img的src屬性函式
- 好程式設計師分享React-010-事件處理函式的this指向問題程式設計師React事件函式
- 常用啟用函式函式
- 工廠方法、建構函式、原型物件——JS基礎學習筆記(四)函式原型物件JS筆記
- 如何寫好 C main 函式AI函式
- 函式的動態引數 及函式巢狀函式巢狀
- 陣列處理函式陣列函式
- Flask 框架啟動無法改變埠Flask框架
- Python虛擬環境 flask快速啟動PythonFlask
- JavaScript 非同步函式的 Promisification 處理JavaScript非同步函式
- 建立型:工廠模式-工廠方法、抽象工廠模式抽象
- 感悟篇:如何寫好函式式程式碼函式
- HG6821M開啟工廠模式模式
- 好的精益工廠佈局需要考慮哪些問題?
- 2、flask-run啟動引數詳解Flask
- 人工智慧---神經網路啟用函式恆等函式、sigmoid函式、softmax函式詳解人工智慧神經網路函式Sigmoid
- 科技愛好者週刊(第 129 期):創業的凸函式和凹函式創業函式
- SQL中的常用的字串處理函式大全SQL字串函式
- 一篇搞定工廠模式【簡單工廠、工廠方法模式、抽象工廠模式】模式抽象