功能齐全的 Crystal Web 框架 Lucky

功能齐全的 Crystal Web 框架 Lucky

MIT
HTML/CSS 查看源码»
跨平台
2019-08-21
afterer

Lucky 是一个用 Crystal 写的 Web 框架,它可以帮助你在编译时捕获 bug,并提供快速的响应,使编写 Web 应用程序快速、有趣和容易。

Lucky 使用 Action 类来处理 HTTP 请求和响应,类将它处理的路由和参数映射到响应块。

特性:

  • 速度快和使用很少的内存
  • 在创建一个新的 Lucky 项目时,可以包括身份验证、资产管理、CORS、数据库 ORM等等
  • 与在 QA 或生产中发现 bug 不同,Lucky 的设计目的是在编译时捕获尽可能多的 bug 

JSON API

class Api::Users::Show < ApiAction
  get "/api/users/:user_id" do
    json user_json
  end

  private def user_json
    user = UserQuery.find(user_id)
    {name: user.name, email: user.email}
  end
end

Database

# Set up the model
class User < BaseModel
  table :users do
    column last_active_at : Time
    column last_name : String
  end
end

# Add some methods to help query the database
class UserQuery < User::BaseQuery
  def recently_active
    last_active_at.gt(1.week.ago)
  end

  def sorted_by_last_name
    last_name.lower.desc_order
  end
end

# Query the database
UserQuery.new.recently_active.sorted_by_last_name

Rendering HTML:

class Users::Index < BrowserAction
  route do
    users = UserQuery.new.sorted_by_last_name
    render IndexPage, users: users
  end
end

class Users::IndexPage < MainLayout
  needs users : UserQuery

  def content
    render_new_user_button
    render_user_list
  end

  private def render_new_user_button
    link "New User", to: Users::New
  end

  private def render_user_list
    ul class: "user-list" do
      @users.each do |user|
        li do
          link user.name, to: Users::Show.with(user.id)
          text " - "
          text user.nickname || "No Nickname"
        end
      end
    end
  end
end

 

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

the road of blockchain popularization may not be cryptocurrency, but games

Even though blockchain technology and cryptocurrency have come into our life, still, it is not clear to people how the blockchain technology and cryptocurrency will affect daily...

2018/05/23 14:47
7
0
hdu 2089 好用的类查找

#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <stdlib.h> #include <string.h> #includ...

2015/07/15 08:36
12
0
sicily 1011 Lenny's Lucky Lotto

Description Lenny likes to play the game of lotto. In the lotto game, he picks a list of N unique numbers in the range from 1 to M. If his list matches the list of numbers that ...

2012/12/17 16:13
43
0
如何使你的父母免受微信朋友圈垃圾,虚假信息的毒害!(详细教程)

禁止朋友圈访问网站。本来我只想尝试禁止朋友圈播放视频的,但是我找不到,因此无奈之下我只能屏蔽朋友圈转发的网站了

2014/07/12 13:28
146
0
iOS开发~CocoaPods使用详细说明

一、概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。 二、安装 由于网上的教程基本都大同小异,但细...

2015/09/23 12:29
2
0
iOS开发~CocoaPods使用详细说明

一、概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。 二、安装 由于网上的教程基本都大同小异,但细...

2016/05/03 15:28
35
1
Lucky Man(LM)系统开发应用

Lucky Man(LM)是首款完全去中心化的类Fomo3D游戏DAPP,完全基于以太坊智能合约原生开发。只要下载安装App就可参与游戏。LM内置以太坊钱包基础功能,解决了大部分用户无法安装浏览器钱包插件...

2018/08/17 14:57
5
0
Linux学习笔记(一) 文件权限与inode

原文来自我的个人博客 twodam.net 文件权限 文件权限描述符 drwxrwxr-x 2 lucky lucky 4096 Apr 15 15:48 ./ drwxr-xr-x 5 lucky lucky 4096 Apr 14 13:24 ../ -rw-rw-r-- 1 lucky lucky 16...

2018/12/01 23:41
59
0
费马定理类的问题的终结版

素数的二次筛选是亮点

2014/07/18 20:25
12
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部