Martenは、実用的な開発と迅速なプロトタイピングを可能にするクリスタルWebフレームワークです。これは、開発者がホイールを再発明することなくWebアプリケーションを構築するために活用できる一貫した拡張可能なツールセットを提供します。
単純
Martenの構文は、クリスタルプログラミング言語の滑らかさとシンプルさから継承されます。それに加えて、このフレームワークは、市場までの時間を減らすために、可能な限りキスをし、できるだけ乾燥しています。
fast速い
Martenは、クリスタルプログラミング言語の裸の金属パフォーマンスを活用することにより、フル機能のWebアプリケーションを構築することができます。また、まともなコンパイル時間のために最適化しようとします。
?フル機能
マーテンは、「バッテリーを含む」哲学を順守しています。箱から出して、ORM、移行、翻訳、テンプレートエンジン、セッション、電子メール、認証など、Webアプリケーションで一般的に必要なツールと機能を提供します。
?拡張可能
Martenは、フレームワークに追加の機能を簡単に貢献できるようになります。カスタムモデルフィールドの実装、新しいルートパラメータータイプ、セッションストアなどなど、フレームワークに簡単に登録できます。
?アプリ指向
Martenは、プロジェクトを論理的な「アプリ」のセットに分離することを許可します。これらのアプリは、他のMartenプロジェクトに機能や動作を提供するために抽出することもできます。ここでの目標は、時間の経過とともに強力なアプリエコシステムを作成できるようにすることです。
?§セキュア
Martenには、箱から出してセキュリティメカニズムが付属しています。クロスサイトリクエストのフォージェリー、クリックジャック、またはSQLインジェクションのようなものは、一般的なセキュリティの問題を回避するためにフレームワークによって処理されます。
必要なツールはフレームワークに組み込まれています。データベースORM、翻訳、移行、テンプレート、セッション、電子メール、認証など、すぐにレバレッジできます。
モデルを簡単に設計します
Martenには、クリスタルクラスと便利なDSLを使用してデータベースを説明するために活用できるオブジェクトリレーショナルマッパー(ORM)が付属しています。
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フレームワークは初めてですか?次のリソースは、あなたが始めるのに役立ちます:
Morgan Aubert(@Ellmetha)と貢献者。
Marten Webフレームワークは、最初にDjangoとRuby on Railsからインスピレーションを得ています。ドキュメントの謝辞セクションを閲覧して、Martenを形成するのに役立つさまざまなインスピレーションと貢献について詳しく知ることができます。
mit。詳細については、 LICENSE参照してください。