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 。