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
请教个问题,那个ruby自带的webrick的/目录在哪,怎么向里添加文件呢?谢谢
如果是自行编译安装的,目录一般在/usr/local/lib/ruby/1.9.1,WEBRick是Ruby自带的Web Server,往里面添加文件做什么用呢?
哦,谢谢了,我一下也说不明白,先试试吧,呵呵