Ruby和web开发

1。编写cgi

    简单的cgi程序如下:

  #!/usr/bin/env ruby
  print "HTTP/1.0 200 OKrn"
  print "Content-type: text/htmlrnrn"
  print "Hello World!rn"

    我们可以用ruby来处理提交的参数,填充模板,生成html等,但稍显麻烦,可以用cgi模块。

2。使用cgi.rb

  cgi.rb用来编写cgi脚本,他可以操作form,cookies,环境变量,维护session等。具体用法你应该知道去哪里找吧。

3。引用和转义

   /在url里是一个特殊字符,还有< 和>等,有时候需要转义(escaped),例如/被转成%2F。cgi.rb提供了两个函数,CGI.escape 和CGI.unescape:

    require 'cgi'
    puts CGI.escape( "Nicholas Payton/Trumpet & Flugel Horn" )

产生结果:

    Nicholas+Payton%2FTrumpet+%26+Flugel+Horn

    转义html文档中元素的例子(略):

4。表单 form

    类cgi可以用两种方法取得客户端提交的数据。加入用户提交了lookup?player=tom&year=1958,我们可以直接用cgi[]数组访问它。

  require 'cgi'
  cgi = CGI.new
  cgi['player']  # -> ["tom"]
  cgi['year']    # -> ["1958"]

另一个办法是你用一个hash表,取得所有参数及值。

  require 'cgi'
  cgi = CGI.new
  h = cgi.params
  h['player']    # -> ["tom"]

5。产生form和html

cgi类提供了非常多的用来产生html的方法,几乎是每一个tag一个方法。还是例子来得直观:

require "cgi"
  cgi = CGI.new("html3")  # add HTML generation methods
  cgi.out{
    cgi.html{
      cgi.head{ "n"+cgi.title{"This Is a Test"} } +
      cgi.body{ "n"+
        cgi.form{"n"+
          cgi.hr +
          cgi.h1 { "A Form: " } + "n"+
          cgi.textarea("get_text") +"n"+
          cgi.br +
          cgi.submit
        }
      }
    }
  }

产生如下代码:

6。cookies

  require "cgi"
  cookie = CGI::Cookie.new("rubyweb", "CustID=123", "Part=ABC");
  cgi = CGI.new("html3")
  cgi.out( "cookie" => [cookie] ){
    cgi.html{
      "nHTML content here"
    }
  }

产生的头如下:

Content-Type: text/html
Content-Length: 86
Set-Cookie: rubyweb=CustID%3D123&Part%3DABC; path=

然后,当用户再访问页面的时候,你就可以读取这个值了。

require "cgi"
  cgi = CGI.new("html3")
  cgi.out{
    cgi.html{
      cgi.pre{
        cookie = cgi.cookies["rubyweb"]
          "nCookies aren" + cookie.value.join("n")
      }
    }

7。sessions

处理session需要额外多一个类:CGI::Session

require "cgi"
  require "cgi/session"

  cgi = CGI.new("html3")
  sess = CGI::Session.new( cgi, "session_key" => "rubyweb",
                            "session_id"  => "9650",
                            "new_session" => true,
                            "prefix" => "web-session.")
  sess["CustID"] = 123
  sess["Part"] = "ABC"

  cgi.out{
    cgi.html{
      "nHTML content here"
    }
  }

读取session通过如下代码:

  require "cgi"
  require "cgi/session"

  cgi = CGI.new("html3")
  sess = CGI::Session.new( cgi, "session_key" => "rubyweb",
                                 "prefix" => "web-session.")
  cgi.out{
    cgi.html{
      "nCustomer #{sess['CustID']} orders an #{sess['Part']}"
    }
  }

Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第三部分;第一部分下载地址:http://download.youkuaiyun.com/source/2807491;第二部分下载地址:http://download.youkuaiyun.com/source/2807539。 三个资源在一起解压缩后(windows 平台下解压缩)即可得到《Ruby.on.Rails.Web开发之旅》一书。 内容简介 本书从RubyRails的历史讲起,以在Rails框架上克隆故事共享网站digg.com为例,详细讲述了RubyRails的安装过程、框架组成部分、与AJAXWeb 2.0技术结合、安全措施、高级话题扩展功能等。本书带领读者运用最新的Web 2.0技术简洁的Rubv编程语言,建立数据库驱动的交互的易建、易用、易维护的网站应用。 本书注重实用性,适合初学者迅速掌握Ruby开发工具的使用方法,为希望深入了解Rails框架并建立健壮网络应用的开发人员提供强大的技术支持。 目录 第1章 Ruby on Rails简介 1.1 历史 1.2 开发原则 1.2.1 惯例优先 1.2.2 不重复自我 1.2.3 灵活的开发 1.3 构建wleb应用程序示例 1.3.1 digg简介 1.3.2 应用程序示例的特性 1.4 小结 第2章 技术准备  2.1 所需软件的成本  2.2 在Windows系统上安装Ruby on Rails  2.3 在Mac OS X系统上安装Ruby on Rails   2.3.1 Mac OS X 10.5(Leopard)   2.3.2 Mac OS X 10.4(Tiger)更早的版本  2.4 在Linux系统上安装Ruby on Rails   2.4.1 使用包管理器   2.4.2 先决条件   2.4.3 在Linux上安装Ruby .  2.4.4 在Linux上安装RubyGems   2.4.5 在Linux上安装Rails   2.4.6 在Linux上安装MySQL  2.5 建立基础   2.5.1 管理所有内容的单目录结构   2.5.2 创建标准目录结构  2.6 开始编写应用程序  2.7 选择文本编辑器   2.7.1 Windows文本编辑器   2.7.2 Mas OS X文本编辑器   2.7.3 Linuxt交叉平台编辑器  2.8 小结 第3章 Ruby简介  3.1 Ruby是脚本语言   3.1.1 编译语言   3.1.2 脚本语言   3.1.3 较大的性能争议  3.2 Ruby是面向对象的语言  3.3 读写Ruby代码   3.3.1 交互式的Ruby界面(irb)   3.3.2 与Ruby对象交互   3.3.3 Ruby中的标点  3.4 在Ruby中使用面向对象编程   3.4.1 类对象   3.4.2 对象层功能   3.4.3 类层功能   3.4.4 继承   3.4.5 返回值  3.5 标准输出  3.6 Ruby核心类   3.6.1 数组   3.6.2 散列表   3.6.3 字符串   3.6.4 数字   3.6.5 符号   3.6.6 空值  3.7 运行Ruby文件  3.8 控制结构   3.8.1 条件   3.8.2 循环   3.8.3 块  3.9 小结 第4章 Rails揭秘  4.1 3种环境  4.2 数据库配置   4.2.1 数据库配置文件   4.2.2 创建数据库  4.3 MVC体系结构   4.3.1 MVC理论   4.3.2 MVC的Rails方式   4.3.3 ActiveRecord(模型)   4.3.4 ActionPck模块  4.4 代码生成  4.5 ActionMailer  4.6 测试调试   4.6.1 测试   4.6.2 调试  4.7 MySQL的图形用户接口工具  4.8 小结 第5章 模型、视图控制器  5.1 创建模型   5.1.1 模型生成器   5.1.2 使用移植修改模式   5.1.3 使用Rails控制台管理数据   5.1.4 隐藏的SQL语句  5.2 生成控制器   5.2.1 运行generate脚本   5.2.2 输出结果分析   5.2.3 返回应用程序  5.3 创建视图   5.3.1 用支架生成视图   5.3.2 创建静态页面   5.3.3 创建动态页面   5.3.4 反复传递数据   5.3.5 引入模型  5.4 小结 第6章 助手、窗体布局  6.1 可信任助手  6.2 故事提交   6.2.1 创建窗体   6.2.2 保存数据到数据库中   6.2.3 创建布局   6.2.4 用户反馈闪存  6.3 测试窗体   6.3.1 测试模型   6.3.2 测试控制器   6.3.3 再次访问日志  6.4 小结 第7章 AJAX与Web 2.0  7.1 生成投票模型   7.1.1 创建模型   7.1.2 创建移植   7.1.3 执行移植  7.2 关系   7.2.1 has-many子句   7.2.2 belongs-to子句   …… 第8章 安全措施 第9章 高级话题 第10章 Rails插件 第11章 调试、测试基准测试 第12章 部署产品使用
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值