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