Marten是一個晶體網絡框架,可實現務實的發展和快速的原型製作。它提供了一套一致且可擴展的工具集,開發人員可以利用這些工具來構建Web應用程序,而無需重新發明輪子。
簡單的
Marten的語法是從Crystal編程語言的光滑和簡單性繼承的。最重要的是,該框架試圖盡可能地吻合和乾燥,以減少上市時間。
⚡快
Marten使您能夠通過利用Crystal編程語言的裸金屬表演來構建功能全面的Web應用程序。它還嘗試優化適當的編譯時間。
?全功能
馬滕遵守“包括”哲學。開箱即用,它提供了Web應用程序通常需要的工具和功能:ORM,遷移,翻譯,模板引擎,會話,電子郵件,身份驗證等。
?可擴展
Marten使您能夠輕鬆地為框架貢獻額外的功能。諸如自定義模型字段實現,新路由參數類型,會話商店等之類的東西可以輕鬆註冊到框架。
?面向應用
Marten允許將項目分為一組邏輯“應用”。這些應用程序也可以提取以為其他Marten項目貢獻特徵和行為。這裡的目標是允許隨著時間的推移創建強大的應用程序生態系統。
?
Marten開箱即用的安全機制。諸如跨站點的偽造,點擊夾克或SQL注入之類的事情是通過框架來照顧的,以避免常見的安全問題。
您需要的工具內置在框架中。數據庫ORM,翻譯,遷移,模板,會話,電子郵件,身份驗證等,可以立即利用。
輕鬆設計模型
Marten配備了一個對象 - 貼合器(ORM),您可以利用Crystal類和方便的DSL來描述您的數據庫。
class Article < Marten::Model
field :id , :big_int , primary_key: true , auto: true
field :title , :string , max_size: 128
field :content , :text
field :author , :many_to_one , to: User
end處理人員的處理請求
處理程序負責處理Web請求和返迴響應。這可能涉及從數據庫中加載記錄,渲染HTML模板或產生JSON有效載荷。
class ArticleListHandler < Marten::Handler
def get
render " articles/list.html " , { articles: Article .all }
end
end用模板渲染面向用戶的內容
模板提供了一種方便的方式來定義您的演示文稿邏輯並編寫動態渲染的內容(例如HTML)。此渲染可能涉及模型記錄或您定義的任何其他變量。
{% extend "base.html" %}
{% block content %}
< ul >
{% for article in articles %}
< li > {{ article.title }} </ li >
{% endfor %}
</ ul >
{% endblock content %}在線可瀏覽文檔可從https://martenframework.com/docs獲得。
您是Marten Web框架的新手嗎?以下資源將幫助您入門:
摩根·奧伯特(@ellmetha)和貢獻者。
Marten Web框架最初從Django和Ruby上汲取靈感。您可以瀏覽文檔的確認部分,以了解有關幫助塑造Marten的各種靈感和貢獻的更多信息。
麻省理工學院。有關更多詳細信息,請參見LICENSE 。