`

Sinatra 101(1)

 
阅读更多
介绍
Sinatra是由 Blake Mizerany在2007年开发出来的基于Rack之上带有轻量级的HTTP请求方式的领域特定语言(DSL)。其非常简洁而优雅。当你从Rails转移到Sinatra,你会像刚从J2EE转到Rails一样震撼,感谢开发者,它们让Web开发这件事简单而充满乐趣。Sinatra有几大优点:
  • 简单但功能完备,你可以非常轻松的在一个文件里创建一个完整的Web应用。
  • 灵活性,没有项目结构的限制,你可以使用Ruby Gem,Rack或者是其自带的扩展API实现你想要的功能。
  • 轻量级, Sinatra没有各种附带的看似诱人,实则扰人的附加功能,你只项目中的所有代码都是为项目服务的。另外,整个Sinatra的代码也只有一千多行
  • 无模式,无需纠缠于MVC的结构,也没有绑定各种ORM(Active Record, Mongoid等), Javascript框架或者模板系统(haml,erb,slim等)你完全掌控如何最好的实现你的应用。

Hello World
安装Sinatra, “gem install sinatra”
coding….
require 'sinatra'

get '/' do
    "Hello World"
end
done.
运行,“ruby main.rb”, 默认情况下,sinatra会使用4567端口,访问http://localhot:4567

使用ruby命令运行系统时,任何对代码的改动要生效都必须重启, 有一个工具可以帮助我们做这件事:shotgun
gem install shotgun

安装该工具,然后使用
shotgun main.rb

启动程序,这样改动完之后,就不用每次改动都手动重启系统了,shotgun会自动检测,如有改动,自动重启。shotgun的默认端口是9393,因此新的系统需要访问http://localhost:9393

部署到Heroku
1. Heroku采用Git做代码管理,你首先需要把自己的代码置于Git下
git init
git add .
git ci -m "init repository"


2.安装heroku
gem install heroku


3.创建自己的heroku项目,注意heroku对项目的名称有限制,只能使用小写字母,数字和“-”
heroku create [project-name]


4. 添加配置文件congfig.ru,Gemfile config.ru是用来告诉heroku如何启动该程序的,如果你启动的方
ruby main.rb

那么,config.ru里需要如下方式添加:
require './main'
run Sinatra::Application

另外需要添加Gemfile,让heroku知道该项目依赖了哪些库
source 'http://rubygems.org'
gem 'sinatra'

然后运行“bundle install”, 确保Gemfile能够正常工作。

5. 把所有的文件加入Git,然后push所有的文件到heroku
git push heroku master

访问项目的URL,http://[project-name].heroku.com,就可以看到项目的结果了
分享到:
评论

相关推荐

    pnrapi-ruby:PNR API,Ruby 版本。 使用 Sinatra 和 Mongodb

    PNRAPI Ruby PNR API 是一项服务,可帮助您以编程方式从印度铁路获取 PNR 号码。 要求 基本*nix系统 Ruby 1.9.3 MongoDB 安装 ...$ ruby script/mongodump.rb 使用正确的 APP_ROOT 更改 unicorn.rb 文件 ...

    node101-express-server

    1. **安装和设置**:首先,我们需要安装 Node.js 环境,然后通过 npm (Node Package Manager) 安装 Express。这通常涉及到 `npm init` 命令创建 package.json 文件,以及 `npm install express --save` 添加 Express...

    rb101

    5. **Gem包管理器**:Ruby有强大的Gem包管理系统,它包含了大量现成的库和框架,如Rails(Web开发框架)、Sinatra(轻量级Web框架)等,方便开发者快速构建应用。 6. **ActiveRecord**:Ruby on Rails框架的一部分...

    LS101第4课

    1. **Ruby基础**:首先,你需要了解Ruby的基本语法,如变量(局部、实例、类和全局变量)、数据类型(字符串、整数、浮点数、布尔值、数组和哈希)以及控制流语句(条件语句、循环和异常处理)。 2. **方法与函数**...

    packback-rest-api-101:我在 14 年 11 月在 Laravel 芝加哥聚会上所做的演示文稿的存储库

    为此,我们尝试将我们在其他 Web 框架中看到的最好的东西结合起来,包括用其他语言实现的框架,例如 Ruby on Rails、ASP.NET MVC 和 Sinatra。 Laravel 易于访问,但功能强大,为大型、健壮的应用程序提供了强大的...

    Launch_School:完成启动学校计划的工作

    首先按照文件所属的练习组对文件进行组织,然后按文件组进行组织(例如,在101-109_small_problems/easy_01找到了101-109小问题的第一组易问题)。 一些项目,例如课程和的 todo 应用程序,以及电子书中的不包含在...

    0pdd:PDD拼图收集器

    首先阅读此博客文章: 是一项托管服务,可在您的存储库中查找新的“难题”,并将其发布为GitHub问题。... 然后,将 GitHub用户作为到您的存储库中(如果它是私有的(对于公共存储库则不需要))。...

Global site tag (gtag.js) - Google Analytics