Flask 使用工廠模式
1、工廠模式
在面向?qū)ο缶幊讨?,工廠模式是開(kāi)發(fā)過(guò)程中最常用的設(shè)計(jì)模式之一,屬于創(chuàng)建型模式,就是通過(guò)一個(gè)接口函數(shù)或?qū)ο髞?lái)創(chuàng)建其他對(duì)象并返回,該模式下不會(huì)對(duì)外暴露創(chuàng)建對(duì)象的具體邏輯,使用的接口函數(shù)也被叫做工廠函數(shù)。工廠模式可以使一個(gè)類的例化推遲到子類中進(jìn)行,也就是說(shuō)工廠模式可以推遲到在程序運(yùn)行的時(shí)候才動(dòng)態(tài)決定要實(shí)例化哪個(gè)類,而不是在編譯時(shí)就必須進(jìn)行實(shí)例化。
2、使用工廠方法創(chuàng)建 app 對(duì)象
我們之前是用app=Flask(__name__)
創(chuàng)建 Flask
應(yīng)用實(shí)例的,但是如果我們想要?jiǎng)?chuàng)建多個(gè)實(shí)例,多個(gè)實(shí)例使用不同的配置的時(shí)候,就會(huì)非常麻煩,那我們就可以通過(guò)調(diào)用一個(gè)create_app()
函數(shù)來(lái)返回應(yīng)用實(shí)例,通過(guò)傳入不同的配置來(lái)創(chuàng)建不同的應(yīng)用實(shí)例,這個(gè)create_app()函數(shù)就是工廠函數(shù),這種方法就是工廠方法。
使用工廠方法的好處:
- 將創(chuàng)建應(yīng)用實(shí)例的過(guò)程交給工廠函數(shù),通過(guò)傳入不同的配置,可以方便的創(chuàng)建不同環(huán)境的應(yīng)用。
- 可以方便快速的進(jìn)行不同配置的切換,進(jìn)而切換不同配置的應(yīng)用,方便進(jìn)行測(cè)試和部署。
下面對(duì)之前的Flask應(yīng)用主程序中引入工廠函數(shù):
def create_app(config_name): config = config_dict.get(config_name) app = Flask(__name__) app.config.from_object(config) ...... # 注冊(cè)藍(lán)圖 app.register_blueprint(user_blue) app.register_blueprint(admin_blue) return app
工廠函數(shù)接收配置名稱 config_name
,支持在應(yīng)用程序的不同位置傳人不同的配置名稱來(lái)創(chuàng)建實(shí)例,除了上面代碼所展示的,把注冊(cè)藍(lán)圖的代碼放入工廠函數(shù),還可以把錯(cuò)誤處理函數(shù)、上下文處理函數(shù)、日志處理函數(shù)等類似的接收程序?qū)嵗?app 作為參數(shù)的函數(shù)放入工廠函數(shù)中進(jìn)行,工廠函數(shù)類似于一個(gè)流水線,創(chuàng)建完應(yīng)用實(shí)例 app
后,執(zhí)行一系列的注冊(cè)函數(shù)為實(shí)例 app 注冊(cè)擴(kuò)展功能等,等執(zhí)行完返回 app 時(shí),我們就可以得到一個(gè)包含我們想要的所有擴(kuò)展功能的應(yīng)用實(shí)例。
到此這篇關(guān)于 Flask
使用工廠模式的文章就介紹到這了,更多相關(guān) Flask 工廠模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python依賴包遷移到斷網(wǎng)環(huán)境操作
這篇文章主要介紹了Python依賴包遷移到斷網(wǎng)環(huán)境操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Python根據(jù)成績(jī)分析系統(tǒng)淺析
在本篇文章里小編給大家分享了關(guān)于Python根據(jù)成績(jī)分析是否繼續(xù)深造一個(gè)系統(tǒng)的相關(guān)知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。2019-02-02opencv之顏色過(guò)濾只留下圖片中的紅色區(qū)域操作
這篇文章主要介紹了opencv之顏色過(guò)濾只留下圖片中的紅色區(qū)域操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06如何利用Python讓Excel快速按條件篩選數(shù)據(jù)
平時(shí)總是要對(duì)Excel進(jìn)行操作,整理了一下平時(shí)經(jīng)常會(huì)用到的操作,下面這篇文章主要給大家介紹了關(guān)于如何利用Python讓Excel快速按條件篩選數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12