国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

輕量級的Web框架Flask 中模塊化應用的實現

2020-02-16 10:12:50
字體:
來源:轉載
供稿:網友

Flask是一個輕量級的Web框架。雖然是輕量級的,但是對于組件一個大型的、模塊化應用也是能夠實現的,“藍圖”就是這樣一種實現。對于模塊化應用的實現,在Flask 0.2版本中進行了設計。本文暫時不對“藍圖”做詳細的介紹,而是先從0.2版本中的Module類的實現講起。其實,“藍圖”的實現和Module類的實現很相似。

為什么實現模塊化應用

對于大型應用而言,隨著功能的不斷增加,整個應用的規模也會擴大。按照一定的規則將應用的不同部分進行模塊化,不僅能夠使整個應用邏輯清晰,也易于維護。例如,在Flask中,你也許想像如下構建一個簡單的項目:

/myapplication  /__init__.py  /views    /__init__.py    /admin.py    /frontend.py

以上目錄結構中,我們將之前的Flask單文件修改成了一個應用包,所有的視圖函數都在views下,并且按照功能分為了admin和frontend兩個部分。為了實現這種模塊化應用的構建,在0.2版本中Flask實現了Module類。這個類實例可以通過注冊的方式,在Flask應用創建后添加進應用。

Module類實現了一系列的方法:

•route(rule, **options)
•add_url_rule(rule, endpoint, view_func=None, **options)
•before_request(f)
•before_app_request(f)
•after_request(f)
•after_app_request(f)
•context_processor(f)
•app_context_processor(f)
•_record(func)

以上方法除了add_url_rule和_record外,都可以作為裝飾器在自己的模塊中使用,這些裝飾器都返回一個函數。通過調用_record方法,可以將裝飾器返回的函數放到_register_events中。當Flask應用創建之后,通過運行_register_events列表中的函數,可以將這個模塊注冊到應用中去。

Flask應用怎么注冊一個Module

以下我們以一個例子來說明Flask應用怎么注冊一個Module。

1. 項目結構

這個簡單的例子項目結構如下:

/myapplication  /__init__.py  /app.py  /views    /__init__.py    /admin.py    /blog.py

admin.py和blog.py兩個模塊的代碼如下:

# admin.pyfrom flask import Moduleadmin = Module(__name__)@admin.route('/')def index():  return "This is admin page!"@admin.route('/profile')def profile():  return "This is profile page."
# blog.pyfrom flask import Moduleblog = Module(__name__)@blog.route('/')def index():  return "This is my blog!"@blog.route('/article/<int:id>')def article(id):  return "The article id is %d." % id

以上兩個模塊中,我們首先分別創建了一個Module類,然后像寫一般的視圖函數一樣,為每個模塊增加一些規則。之后,可以在創建Flask應用的時候將這些模塊引入,就可以注冊了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 勃利县| 温泉县| 蒙自县| 麟游县| 手游| 新兴县| 梨树县| 滁州市| 凤庆县| 巩留县| 顺平县| 辉南县| 晋宁县| 平远县| 鹤壁市| 孝昌县| 定陶县| 宁德市| 涞水县| 伊通| 桑植县| 秦皇岛市| 渝中区| 阳高县| 鄯善县| 阿克苏市| 青神县| 望城县| 娱乐| 桑植县| 新营市| 界首市| 怀宁县| 克什克腾旗| 四平市| 柯坪县| 巨野县| 体育| 连江县| 宁明县| 新宾|