Sinatra安装和使用

Sinatra是一个基于Ruby语言,以最小精力为代价快速创建web应用为目的的DSL(领域专属语言)。熟悉了一下Sinatra的使用,个人感觉还是比较灵活的,相比rails来说,这款框架实在是简单灵活。

Sinatra可以通过Ruby自带的gems包管理工具安装,Windows下和Linux并无区别,Ruby1.9版本一般都自带了gems。

$ gem install sinatra

安装好之后就可以进行开发了。下面是简单的测试脚本。

# filename: hi.rb
require 'sinatra'

get '/' do
  "hello world"
end

将上面的程序保存名为hi.rb的文件,然后在命令行下面执行:

$ ruby hi.rb
== Sinatra/1.1.2 has taken the stage on 4567 for development with backup from WEBrick
[2011-01-26 20:16:42] INFO  WEBrick 1.3.1
[2011-01-26 20:16:42] INFO  ruby 1.9.2 (2010-08-18) [i686-linux]
[2011-01-26 20:16:42] INFO  WEBrick::HTTPServer#start: pid=4186 port=4567

在浏览器中访问localhost:4567,便可看到运行结果。Sinatra默认使用Ruby自带的WEBrick作为Web服务器。这就意味着每次修改程序,都要重新启动服务器。

Sinatra里面很独特的是她的路由配置(Routes),'/'表示网站根目录,'/about'表示GET请求的参数为about。Sinatra提供了四种请求的方式,分别是

GET POST PUT DELETE

这种方式还是比较实用的。假如有用户登录页面,可以分别实现GET和POST方式,GET用来处理默认的登录页面,POST用来处理表单提交。

get '/login' do
  # 登录页面
end

post '/login' do
  # 处理提交
  # 表单数值通过params数组获取
  # params['username']
end

模板的使用。Sinatra提供了很多模板引擎,因为对erb有些了解而已,其它的参见官方教程。模板默认存放在根目录的views文件夹中。

CSS样式表无法直接调用,Sinatra提供了相应的模板,据说可以快速书写CSS。学习一种新的CSS语法,还是有些让人抓狂的。Sass这个CSS模板也有自己的一套语法,学起来也是很容易的。

# views/index.erb
get '/' do
  erb :index
end

# views/style.css
require 'sass' 

get 'style.css' do
  scss :style
end
# 样式表也是一个http请求

Sinatra连接数据库。

Database is MySQL
ActiveRecord::Base.establish_connection(
  :adapter => 'mysql', # or 'mysql2'
  :host => 'localhost',
  :username => 'root',
  :password => '',
  :database => 'test'
)

Database is sqlite
ActiveRecord::Base.establish_connection(
  :adapter => "sqlite",
  :database  => "path/to/dbfile"
)

Sinatra使用了和Rails相同的数据库操作方式,模型类继承ActiveRecord::Base类。

class Post < ActiveRecord::Base
  ...
end

所有评论我要评论

留下您的大名