Marten은 실용적인 개발과 빠른 프로토 타이핑을 가능하게하는 Crystal 웹 프레임 워크입니다. 개발자가 휠을 재창조하지 않고 웹 응용 프로그램을 구축하기 위해 활용할 수있는 일관되고 확장 가능한 도구 세트를 제공합니다.
단순한
Marten의 구문은 Crystal 프로그래밍 언어의 매끄럽고 단순성에서 상속됩니다. 게다가 프레임 워크는 마켓을 줄이기 위해 가능한 한 키스하고 건조한 준수를 시도합니다.
⚡ 빠른
Marten은 Crystal 프로그래밍 언어의 Bare Metal Performance를 활용하여 전체 기능을 갖춘 웹 응용 프로그램을 구축 할 수 있습니다. 또한 괜찮은 컴파일 시간을 최적화하려고합니다.
? 완전한 기능
Marten은 "배터리 포함"철학을 준수합니다. 상자 밖에서, 그것은 ORM, 마이그레이션, 번역, 템플릿 엔진, 세션, 이메일, 인증 등 웹 응용 프로그램에 일반적으로 요구되는 도구와 기능을 제공합니다.
? 확장 가능
Marten은 프레임 워크에 추가 기능을 쉽게 기여할 수있는 기능을 제공합니다. 사용자 정의 모델 필드 구현, 새로운 경로 매개 변수 유형, 세션 스토어 등과 같은 것들은 프레임 워크에 쉽게 등록 할 수 있습니다.
? 앱 지향
Marten은 프로젝트를 논리적 "앱"세트로 분리 할 수 있습니다. 이 앱을 추출하여 다른 Marten 프로젝트에 기능과 행동을 제공 할 수도 있습니다. 여기서 목표는 시간이 지남에 따라 강력한 앱 생태계를 생성 할 수 있도록하는 것입니다.
? ️ 안전한
Marten은 상자에서 보안 메커니즘을 제공합니다. 일반적인 보안 문제를 피하기 위해 프레임 워크에 의해 크로스 사이트 요청 위조, 클릭 재킹 또는 SQL 주입과 같은 것들이 처리됩니다.
필요한 도구는 프레임 워크에 내장되어 있습니다. 데이터베이스 ORM, 번역, 마이그레이션, 템플릿, 세션, 이메일, 인증 등을 즉시 활용할 수 있습니다.
모델을 쉽게 설계하십시오
Marten은 Crystal 클래스와 편리한 DSL을 사용하여 데이터베이스를 설명하기 위해 활용할 수있는 ORM (Object-Relational-Mapper)과 함께 제공됩니다.
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핸들러와의 프로세스 요청
핸들러는 웹 요청을 처리하고 응답을 반환 할 책임이 있습니다. 여기에는 데이터베이스에서 레코드를로드하거나 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 Framework를 처음 사용하십니까? 다음 리소스는 시작하는 데 도움이됩니다.
Morgan Aubert (@ellmetha) 및 기고자.
Marten Web Framework는 처음에 Django와 Ruby on Rails에서 영감을 얻었습니다. 문서의 승인 섹션을 탐색하여 Marten을 형성하는 데 도움이되는 다양한 영감과 기여에 대해 자세히 알아볼 수 있습니다.
MIT. 자세한 내용은 LICENSE 참조하십시오.