sinatra 基本用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sinatra 基本用法相关的知识,希望对你有一定的参考价值。

sinatra 不同于rails,是一个轻量级的ruby 框架,非常轻巧灵活。


基本用法如官网所述:

#!/usr/bin/env ruby
require ‘sinatra‘

get ‘/frank-says‘ do
  ‘Put this in your pipe & smoke it!‘
end


默认会监听在127.0.0.1:4567 ,可以稍加配置,如下:

#!/usr/bin/env ruby
require ‘sinatra‘

configure do
  set :bind, ‘0.0.0.0‘
  set :port, ‘1234‘
end

get ‘/frank-says‘ do
  ‘Put this in your pipe & smoke it!‘
end


使用变量的办法如下

#!/usr/bin/env ruby
require ‘sinatra‘

configure do
  set :bind, ‘0.0.0.0‘
  set :port, ‘1234‘
end

get ‘/frank-says‘ do
  "your ip address is #{request.ip}"
end



其他一些有用的变量如下:

  request.body              # 被客户端设定的请求体(见下)
  request.scheme            # "http"
  request.script_name       # "/example"
  request.path_info         # "/foo"
  request.port              # 80
  request.request_method    # "GET"
  request.query_string      # ""
  request.content_length    # request.body的长度
  request.media_type        # request.body的媒体类型
  request.host              # "example.com"
  request.get?              # true (其他动词也具有类似方法)
  request.form_data?        # false
  request["SOME_HEADER"]    # SOME_HEADER header的值
  request.referrer          # 客户端的referrer 或者 ‘/‘
  request.user_agent        # user agent (被 :agent 条件使用)
  request.cookies           # 浏览器 cookies 哈希
  request.xhr?              # 这是否是ajax请求?
  request.url               # "http://example.com/example/foo"
  request.path              # "/example/foo"
  request.ip                # 客户端IP地址
  request.secure?           # false(如果是ssl则为true)
  request.forwarded?        # true (如果是运行在反向代理之后)
  request.env               # Rack中使用的未处理的env哈希



附 CentOS7 安装ruby + sinatra 环境

yum install ruby ruby-devel rubygems rubygem-rack 
gem install sinatra thin

ps:官方推荐安装thin,因为它比默认的webrick性能更好,sinatra默认优先使用thin


本文出自 “专注Linux 运维” 博客,请务必保留此出处http://purplegrape.blog.51cto.com/1330104/1895952

以上是关于sinatra 基本用法的主要内容,如果未能解决你的问题,请参考以下文章

Python中的基本函数及其常用用法简析

c_cpp 加载源图像固定用法(代码片段,不全)

JavaSE 方法的使用

send_file 用于 Sinatra 中的临时文件

SQL Select 语句的用法

Sinatra 流媒体和 Eventmachine 频道