雷林鹏分享:Ruby CGI方法
Ruby CGI方法
以下为CGI类的方法列表:
序号方法描述
1CGI::new([ level="query"])
创建 CGI 对象。query可以是以下值:
query: 没有 HTML 生成输出
html3: HTML3.2
html4: HTML4.0 Strict
html4Tr: HTML4.0 Transitional
html4Fr: HTML4.0 Frameset
2CGI::escape( str)
使用 URL 编码来转义字符串
3CGI::unescape( str)
对通过 escape() 编码的字符串进行解码。
4CGI::escapeHTML( str)
编码 HTML 特殊字符, 包括: & < >。
5CGI::unescapeHTML( str)
解码 HTML 特殊字符, 包括: & < >。
6CGI::escapeElement( str[, element...])
在指定的 HTML 元素中编码 HTML 特殊字符。
7CGI::unescapeElement( str, element[, element...])
在指定的 HTML 元素中解码 HTML 特殊字符。
8CGI::parse( query)
解析查询字符串,并返回包含哈希的 键=》值 对。
9CGI::pretty( string[, leader=" "])
返回整齐的HTML格式。 如果指定了 leader ,它将写入到每一行的开头。 leader 默认值为两个空格。
10CGI::rfc1123_date( time)
根据 RFC-1123 来格式化时间 (例如, Tue, 2 Jun 2008 00:00:00 GMT)。
CGI 实例化方法
以下实例中我们将 CGI::new 的对象赋值给 c 变量,方法列表如下:
序号方法描述
1c[ name]
返回一个数组,包含了对应字段名为 name 的值。
2c.checkbox( name[, value[, check=false]])
c.checkbox( options)
返回 HTML 字符串用于定义 checkbox 字段。标签的属性可以以一个哈希函数作为参数传递。
3c.checkbox_group( name, value...)
c.checkbox_group( options)
>返回 HTML 字符串用于定义 checkbox 组。标签的属性可以以一个哈希函数作为参数传递。
4c.file_field( name[, size=20[, max]])
c.file_field( options)
返回定义 file 字段的HTML字符串。
5c.form([ method="post"[, url]]) { ...}
c.form( options)
返回定义 form 表单的HTML字符串。 如果指定了代码块,将作为表单内容输出。标签的属性可以以一个哈希函数作为参数传递。
6c.cookies
返回 CGI::Cookie 对象,包含了cookie 中的键值对。
7c.header([ header])
返回 CGI 头部的信息。如果 header 参数是哈希值,其键 - 值对,用于创建头部信息。
8c.hidden( name[, value])
c.hidden( options)
返回定义一个隐藏字段的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。
9c.image_button( url[, name[, alt]])
c.image_button( options)
返回定义一个图像按钮的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。
10c.keys
返回一个数组,包含了表单的字段名。
11c.key?( name)
c.has_key?( name)
c.include?( name)
如果表单包含了指定的字段名返回 true。
12c.multipart_form([ url[, encode]]) { ...}
c.multipart_form( options) { ...}
返回定义一个多媒体表单(multipart)的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。
13c.out([ header]) { ...}
生成 HTML 并输出。使用由块的输出来创建页面的主体生成的字符串。
14c.params
返回包含表单字段名称和值的哈希值。
15c.params= hash
设置使用字段名和值。
16c.password_field( name[, value[, size=40[, max]]])
c.password_field( options)
返回定义一个password字段的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。
17c.popup_menu( name, value...)
c.popup_menu( options)
c.scrolling_list( name, value...)
c.scrolling_list( options)
返回定义一个弹出式菜单的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。
18c.radio_button( name[, value[, checked=false]])
c.radio_button( options)
返回定义一个radio字段的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。
19c.radio_group( name, value...)
c.radio_group( options)
返回定义一个radio按钮组的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。
20c.reset( name[, value])
c.reset( options)
返回定义一个reset按钮的HTML字符串。 标签的属性可以以一个哈希函数作为参数传递
21c.text_field( name[, value[, size=40[, max]]])
c.text_field( options)
返回定义一个text字段的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。
22c.textarea( name[, cols=70[, rows=10]]) { ...}
c.textarea( options) { ...}
返回定义一个textarea字段的HTML字符串。 如果指定了块,代码块输出的字符串将作为 textarea 的内容。 标签的属性可以以一个哈希函数作为参数传递。
HTML 生成方法
你可以再 CGI 实例中使用相应的 HTML 标签名来创建 HTML 标签,实例如下:
#!/usr/bin/ruby
require "cgi"
cgi = CGI.new("html4")
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
}
}
}
}
CGI 对象属性
你可以再 CGI 实例中使用以下属性:
属性返回值
accept可接受的 MIME 类型
accept_charset可接受的字符集
accept_encoding可接受的编码
accept_language可接受的语言
auth_type可接受的类型
raw_cookieCookie 数据 (原字符串)
content_length内容长度(Content length)
content_type内容类型(Content type)
FromClient e-mail 地址
gateway_interfaceCGI 版本
path_info路径
path_translated转换后的路径
Query_string查询字符串
referer之前访问网址
remote_addr客户端主机地址(IP)
remote_host客户端主机名
remote_ident客户端名
remote_user经过身份验证的用户
request_method请求方法(GET, POST, 等。)
script_name参数名
server_name服务器名
server_port服务器端口
server_protocol服务器协议
server_software服务器软件
user_agent用户代理(User agent)
(编辑:雷林鹏 来源:网络)
雷林鹏分享:Ruby CGI方法的更多相关文章
- 雷林鹏分享:Ruby 循环
Ruby 循环 Ruby 中的循环用于执行相同的代码块若干次.本章节将详细介绍 Ruby 支持的所有循环语句. Ruby while 语句 语法 while conditional [do] code ...
- 雷林鹏分享:C# 方法
C# 方法 一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块.每一个 C# 程序至少有一个带有 Main 方法的类. 要使用一个方法,您需要: 定义方法 调用方法 C# 中定义方法 当定 ...
- 雷林鹏分享:Ruby CGI 编程
Ruby CGI 编程 Ruby 是一门通用的语言,不仅仅是一门应用于WEB开发的语言,但 Ruby 在WEB应用及WEB工具中的开发是最常见的. 使用Ruby您不仅可以编写自己的SMTP服务器,FT ...
- 雷林鹏分享:Ruby CGI Sessions
Ruby CGI Sessions CGI::Session 可以为用户和CGI环境保存持久的会话状态,会话使用后需要关闭,这样可以保证数据写入到存储当中,当会话完成后,你需要删除该数据. #!/us ...
- 雷林鹏分享:Ruby CGI Cookies
Ruby CGI Cookies HTTP协议是无状态协议.但对于一个商业网站,它需要保持不同的页面间的会话信息. 如用户在网站注册过程中需要跳转页面,但又要保证之前填写的信息部丢失. 这种情况下 C ...
- 雷林鹏分享:Ruby 方法
Ruby 方法 Ruby 方法与其他编程语言中的函数类似.Ruby 方法用于捆绑一个或多个重复的语句到一个单元中. 方法名应以小写字母开头.如果您以大写字母作为方法名的开头,Ruby 可能会把它当作常 ...
- 雷林鹏分享:Ruby Dir 类和方法
Ruby Dir 类和方法 Dir 是一个表示用于给出操作系统中目录中的文件名的目录流.Dir 类也拥有与目录相关的操作,比如通配符文件名匹配.改变工作目录等. 类方法 序号方法 & 描述 1 ...
- 雷林鹏分享:Ruby File 类和方法
Ruby File 类和方法 File 表示一个连接到普通文件的 stdio 对象.open 为普通文件返回该类的一个实例. 类方法 序号方法 & 描述 1File::atime( path) ...
- 雷林鹏分享:Ruby Web Services 应用 - SOAP4R
Ruby Web Services 应用 - SOAP4R 什么是 SOAP? 简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是交换数据的一种协议规范. ...
随机推荐
- Jenkins中maven的作用--构建项目(三)
本文主要根据Jenkins上的日志来继续说明构建项目的过程,上文我们已经讲到构建一个测试环境或单独终端的过程,详情可以了解上篇文章 一.背景介绍 首先看下SVN代码的仓库的结构: 代码仓库里有一个文件 ...
- .net各版本framework官方下载地址
版本 链接 说明 Microsoft .NET Framework 4(独立安装程序) https://www.microsoft.com/zh-cn/download/details.aspx?id ...
- Ora-1157 ora-1110错误解决案例一枚
1.数据库打开报错如下: SQL> alter database open; alter database open * ERROR at line 1: ORA-01157: cannot i ...
- Python开发【Django】:路由规则
Django路由规则 1.基于正则的URL 在templates目录下创建index.html.detail.html文件 <!DOCTYPE html> <html lang=&q ...
- python装饰器的应用案例
目录 一.过程编程 二.面向装饰器和函数的编程 三.二的加强版 一.过程编程 (一)需求:打印菱形 1.空格.*号组成的菱形 2.输入菱形上半部分的行数即可打印 3.支持循环输入 (二)代码 from ...
- (2.1)学习笔记之mysql基本操作(启动与关闭)
本系列学习笔记主要讲如下几个方面: 本文主要是[一:mysql启动][二:mysql关闭] 一..mysql启动 如图,有多重启动方式 (1.1)mysql.server start :默认使用 /e ...
- LVM的一些问题汇总 tune2fs命令
LVM的一些问题汇总 tune2fs命令 --http://www.aminglinux.com/bbs/forum.php?mod=viewthread&tid=7664&page ...
- nodejs Async详解之三:集合操作
Async提供了很多针对集合的函数,可以简化我们对集合进行异步操作时的步骤.如下: forEach:对集合中每个元素进行异步操作 map:对集合中的每个元素通过异步操作得到另一个值,得到新的集合 fi ...
- angry_birds_again_and_again(2014年山东省第五届ACM大学生程序设计竞赛A题)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2877 题目描述 The problems ca ...
- python selenium 安装与 chromedriver安装
安装 pip install selenium 安装完成之后运行脚本,如果没报错那ok.但是很不幸运,我报错啦.(本人使用ubuntu16.04,python2,or python3) 贴出我的报错: ...