Ruby Web应用程序
-
Web应用程序-CGI编程
Ruby是一种通用语言。它根本不能正确地称为网络语言。即使这样,Web应用程序和Web工具通常还是Ruby的最常见用法。您不仅可以用Ruby编写自己的SMTP服务器,FTP守护程序或Web服务器,而且还可以将Ruby用于更常见的任务,例如CGI编程或替代PHP。 -
编写CGI脚本
最基本的Ruby CGI脚本看起来像这样-如果调用此脚本test.cgi并将其上载到具有适当权限的基于Unix的Web托管提供程序,并且您将test.cgi上载到主目录并赋予其执行权限,在这里,当从Web浏览器请求test.cgi时,Web服务器将在网站上查找test.cgi,然后使用Ruby解释器执行它。Ruby脚本返回一个基本的HTTP标头,然后返回一个基本的HTML文档。 -
使用cgi.rb
Ruby带有一个称为cgi的特殊库,与之前的CGI脚本相比,该库支持更复杂的交互。让我们创建一个使用cgi的基本CGI脚本-在这里,您创建了一个CGI对象,并用它来为您打印交互头。 -
表单处理
使用类CGI可以通过两种方式访问HTML查询参数。假设给我们一个URL /cgi-bin/test.cgi?FirstName=Zara&LastName=Ali。您可以直接使用CGI#[]访问参数FirstName和LastName,如下所示:还有另一种访问这些表单变量的方法。此代码将为您提供所有键和值的哈希-以下是检索所有key的代码-如果表单包含多个具有相同名称的字段,则相应的值将作为数组返回到脚本。[]访问器仅返回这些方法中的第一个。将params方法的结果返回索引以将其全部获取。在此示例中,假设表单具有三个名为“name”的字段,并且我们输入了三个名称“ Zara”,“Huma”和“Nuha”-注意 -Ruby将自动处理GET和POST方法。这两种不同的方法没有单独的处理方法。可以发送正确数据的关联但基本的表单将具有如下HTML代码-
-
创建表单和HTML
CGI包含大量用于创建HTML的方法。您将为每个标签找到一种方法。为了启用这些方法,必须通过调用CGI.new创建一个CGI对象。为了使标记嵌套更容易,这些方法将其内容作为代码块。代码块应返回String,它将用作标签的内容。例如-注意:CGI类的form方法可以接受method参数,该参数将设置要在表单提交中使用的HTTP方法(GET,POST等)。在此示例中使用的默认值为POST。
这将产生以下结果- -
引用字符串
在处理URL和HTML代码时,必须小心引用某些字符。例如,斜杠(/)在URL中具有特殊含义,因此,如果它不是路径名的一部分,则必须将其转义。例如,URL查询部分中的任何/都将转换为字符串%2F,并且必须转换回为/才能使用。空格和&符也是特殊字符。为了解决这个问题,CGI提供了例程CGI.escape和CGI.unescape。这将产生以下结果-这将产生以下结果-更多内置函数,参考方法,请查阅参考手册。