Masonite 在結構上參考了 Laravel (一個優異的 PHP 框架) 的許多先進設計, 例如服務提供者與服務容器等等, 而且提供了命令列與 ORM 工具, 具有簡單高效, 測試覆蓋率高等優點, 參考 :
# https://pypi.org/project/masonite/ (套件下載)
# https://docs.masoniteproject.com/ (教學文件)
# https://github.com/MasoniteFramework/masonite (開放原始碼)
強國的社群有人發起教學文件中文化翻譯 (進行中) :
# Masonite 中文文档
目前市面上 Masonite 的書籍只找到一本, 作者是 Masonite 的開發者 Joe Mancuso :
# The Definitive Guide to Masonite: Building Web Applications with Python
Source : Amazon
Google 圖書有提供試閱, 參考 :
# Google Book : The Definitive Guide to Masonite: Building Web Applications with Python
此書作者之一 Joe Mancuso 有在 Youtube 發布 Masonite 簡介影片:
# #233 The Masonite Python Web Framework
很多人可能跟我一樣, 覺得 Django 已經很好用了, 為什麼還要學一種新的框架? 作者 Joe Mancuso 在下面這篇 Medium 的文章中比較了 Masonite 與 Django 的差異, 並對於為什麼 Masonite 是最適合初學者與專家的框架, 提出了極有說服力的愛用理由 :
# Masonite 2.0 and Django
重點摘要如下 :
- Masonite 是一個以開發者為中心的框架 (developer-centric), 專為網頁開發者而設計, 不像 Django 最初是為了建立新聞網站, 而 Flask 則看起來像是愚人節玩具 (好酸啊).
- Masonite 是為了想讓網頁應用成為 SaaS 雲端軟體而設計, 也是為那些周末戰士的專案 (Weekend Warrior Projects, 即只有周末才有空做的個人專案) 而開發.
- Masonite 採用 MVC (Model-View-Controller) 架構; 而 Django 則是採用 MTV (Model-Template-View) 架構, 這是兩者最大的不同. 雖然達成的效果一樣, 但架構不同就表示做事的方式不同.
- Django 將單一的應用程式分解成多個 App, 這對於將功能複雜的應用邏輯抽象化確實有其意義, 但對於許多開發者來說卻不知該如何拆解應用程式功能, 導致因為盲目分拆而讓應用程式的邏輯架構更加複雜. Masonite 不是這樣, 它是真正的 MVC 架構, 它將應用邏輯分拆成位於不同模組的多個控制器, Masonite 提供多種控制器類別可將應用邏輯以清楚與符合實際的方式抽象化.
- Mashonite 採用 Service Provide 與 Service Container 增添第三方應用程式 (例如郵件服務) 來擴充 Masonite 網站的功能, 此方式可加速網站的反應速度, 因為它不需要去後端 (backend) 去檢查是否有此服務. Django 的第三方服務是在後端 INSTALLED_APPS 設定中以字串格式列舉服務的位置與功能.
- Django 的設定全部放在單一的 settings.py 與 settings_local.py 裡面, 有些人覺得這沒甚麼不好, 但其實全部放在一起有點混亂. Masonite 則是將設定以功能特性進行區分, 將其分割成多個設定檔.
# Python:masonite初体验TodoList
最近要抽空來玩玩看.
4 則留言 :
今天看有1700多
您後來用的如何呢?
汗顏, 學的武功太多, 沒時間進一步研究, 反而是 Flask 較常用, 純手工.
看了一下 masonite的文件,如果有學過laravel應該會好入手很多。
感謝! 曾經想學 Laravel, 但 PHP 本身就有很多要學, 時間不夠分, 後來改用 Python, 連 PHP 都很少再用了, 哈
張貼留言