介绍
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,就可以看到项目的结果了
分享到:
相关推荐
Sinatra::Synchrony是 Sinatra的一个小扩展,它动态提升了Sinatra网络应用的并发性。由于EventMachine和EM-Synchrony的支持,当你有很多 传输和低速IO请求时(如向外部APIs发送的HTTP请求),它增加了你的应用每个...
1. **Sinatra 框架的基本介绍**:了解 Sinatra 的设计理念、特点及其与其他 Ruby Web 框架的区别。 2. **Sinatra 基础设置**:如何安装 Sinatra 和相关依赖库,以及如何构建一个简单的 Web 应用程序。 3. **路由...
sinatra-pubsub, 为 Sinatra 推送&流 Sinatra::PubSubPubSub是对 Sinatra的扩展,它增加了使用HTML5服务器发送事件的基本发布/订阅流。例如客户端可以订阅以下事件:var es = new EventSource('/subscribe
almost-sinatra, Sinatra 重构,现在只有六个行 比一双袜子更受欢迎 几乎 Sinatra "until programmers stop acting like obfuscation is morally hazardous,they're not artists, just kid
1. **路由定义**:Pinatra允许开发者使用简洁的语法来定义HTTP路由,如`get '/' => 'home#index'`,这表示当收到GET请求到根路径时,调用`home`控制器的`index`方法。 2. **中间件支持**:如同Sinatra,Pinatra也...
1. **模块化结构**:Padrino提供了一种模块化的架构,允许开发者将应用拆分为多个独立的子应用或“padrinos”,每个都有自己的路由、控制器和视图。这种分层设计有助于保持代码的清晰和可维护性。 2. **强大的路由...
1. 中间件在Sinatra中扮演着重要角色,它们在请求和响应之间工作,提供额外的功能,如日志记录、会话管理、认证等。例如,`use Rack::Session::Cookie`启用基于cookie的会话管理。 四、配置与启动 1. 应用配置:...
Sinatra靴子 一个简单的Sinatra起点 Sinatra Bootstrap支持: Sinatra Bootstrap的目的是什么? 我创建Sinatra Bootstrap是为了使Sinatra项目具有一致的起点。 我喜欢在每个项目中都可以使用Haml,Sass和Compass,...
Sinatra快速入门模板使用方式如下: $ quik new sinatra这将下载并运行 starter向导脚本( )。 导致: Hello from the sinatra quick starter wizard scriptQ: Name of the sinatra app? [hola]: holaThanks! Ready...
用于启用跨域资源共享(CORS)的简单Sinatra扩展要查看有关跨域资源共享的更多信息,请参阅 使用捆绑器安装 gem "sinatra-cross_origin", "~> 0.3.1" 例子 要为所有路由启用跨源请求: require 'sinatra' require...
Sinatra 架构 为您的 Sinatra 应用程序定义架构以验证请求和响应。 将其转储为 JSON 模式以帮助生成客户端等等! 用法 注册Sinatra::Schema来定义资源,例如: class MyApi < Sinatra :: Base register ...
标题 "Sinatra-Project1" 暗示我们将深入探讨如何使用 Sinatra 开发项目。在描述中同样提到了 "Sinatra-Project1",这可能是一个初学者或开发者创建的基于 Sinatra 的第一个项目。通过标签 "Ruby" 我们知道这是使用 ...
1. `Gemfile`: 这是Ruby项目中用于管理依赖的文件,它列出了项目所需的gem(Ruby的库或框架)及其版本。 2. `Gemfile.lock`: 这个文件记录了具体安装的gem版本,确保其他人克隆项目时可以复现相同的环境。 3. `...
Docker-Compose 的 Sinatra Redis 示例 这是一个使用 Sinatra 和 Redis 构建的 dockerized 示例 JSON API。 我希望有人能从中吸取教训。 这个例子真的很小,并且使用了和的 Docker 库容器。 最有趣的部分是您必须...
**Ruby-Sinatra-SampleApp** 是一个基于Ruby编程语言,使用Sinatra框架和Sequel数据库库构建的示例应用程序。这个项目旨在提供一个简洁的起点,帮助开发者了解如何使用这些技术来创建轻量级、高效的Web应用。下面将...
步骤1:创建Sinatra应用程序 步骤2:添加JSON响应 步骤3:使用ActiveRecord添加数据库连接和模型 步骤4:添加graphql并定义查询以列出发言者 步骤5:添加突变根类型 步骤6:为说话者创建定义变体 在Medium阅读更多 ...
Nginx、Puma 和 Sinatra 示例展示了如何使用 Puma 和 Nginx 部署一个简单的 Sinatra 应用程序。 动态内容通过 Puma 提供,而静态内容通过 Nginx 提供。 git clone ...
辛纳屈::克朗允许您将内嵌文档添加到 Sinatra 应用程序,并提供基于 Web 的文档浏览器。用法 require "sinatra/croon"class MyApp < Sinatra> the name of the application to ...ree-1.8.7# @response# {# "id": 1,
授权通道AuthLane Sinatra 扩展允许通过支持不同用户角色和通过 Cookie 自动登录的简单用户身份验证。 它公开了 Helper 方法来判断哪些路由受到保护或参与了身份验证过程。 实际的身份验证逻辑(策略)由应用程序...
Sinatra是一种用于以最少的精力在Ruby中快速创建Web应用程序: # myapp.rb require 'sinatra' get '/' do 'Hello world!' end 安装gem: gem install sinatra 并运行: ruby myapp.rb 查看位于: 重新启动...