job:simple_Web :: Simple Perl模块简介,一个简约的Web框架

job:simple

Shadowcat Systems的技术总监Matt Trout是Perl社区中最杰出的成员之一。 多年来,他一直在为Perl应用程序构建核心工具,其中包括Catalyst MVC(模型,视图,控制器)Web框架的共同维护者,DBIx :: Class对象管理系统的创建者等等。 面对面,他充满活力,有趣,聪明,有时很难跟上。 马特(Matt)编写代码时……好吧,想一想电锯失控,扣紧扳机并禁用安全功能的情况。 他正在奔跑,而你永远也不知道会发生什么。 几乎可以肯定有两件事:该模块将完全适合Matt所考虑的目的,并且它将显示在CPAN上供其他人使用。

网址::简单 。 它被吹捧为“构建简单Web应用程序的快速简便方法”,是一种精简,简约的Web框架,具有易于学习的界面。 Web :: Simple根本不是为大型应用程序设计的; 但是,对于在低流量环境中执行一两个操作的小型工具而言,它可能是理想的选择。 如果您要为演示创建新应用程序的快速线框,我还可以设想将其用于快速原型制作。

安装,然后快速找到“ Howdy!”。

您可以使用cpancpanm安装模块。 安装完它之后,您就可以编写简单的Web应用程序,而不必费心管理连接或其中的任何连接-只需您的功能即可。 这是一个简单的例子:



   
   
#!/usr/bin/perl
package HelloReader ;
use Web :: Simple ;

sub dispatch_request {
  GET => sub {
    [ 200 , [ 'Content-type' , 'text/plain' ] , [ 'Howdy, Opensource.com reader!' ] ]
  } ,
  '' => sub {
    [ 405 , [ 'Content-type' , 'text/plain' ] , [ 'You cannot do that, friend. Sorry.' ] ]
  }
}

HelloReader -> run_if_script ;

有几件事需要立即注意。 首先,我没有像use warnings一样use strict use warnings 。 Web :: Simple会为您导入这些内容,因此您不必这样做。 它还会导入Moo (一个简约的OO框架),因此,如果您了解Moo并想在这里使用它,就可以! 系统的核心在于dispatch_request方法,您必须在应用程序中定义该方法。 该方法中的每个条目都是一个匹配字符串,后跟一个子例程,以在该字符串匹配时做出响应。 该子例程必须返回一个数组引用,其中包含状态,标头和对请求的答复的内容。

匹配

Web :: Simple中的匹配系统功能强大,可以进行复杂的匹配,在URL中传递参数,查询参数和扩展名匹配,几乎可以采用任何所需的组合。 如上例所示,以大写字母开头将与request方法匹配,并且可以将其与路径匹配轻松组合:



   
   
'GET + /person/*' => sub {
  my ( $self , $person ) = @_ ;
  # write some code to retrieve and display a person
  } ,
'POST + /person/* + %*' => sub {
  my ( $self , $person , $params ) = @_ ;
  # write some code to modify a person, perhaps
  }

在后一种情况下,匹配的第三部分表示我们应该选择所有POST参数,并将它们放入名为$params的hashref中,以供子例程使用。 使用? 而不是% ,匹配的那部分将获取查询参数,这通常在GET请求中使用。 还有一个有用的导出子程序,称为redispatch_to 。 该工具可让您重定向,而无需使用3xx重定向; 它是内部处理的,用户看不见。 所以:



   
   
'GET + /some/url' => sub {
  redispatch_to '/some/other/url' ;
}

/some/url GET请求将被处理,就像发送到/some/other/url ,没有重定向,并且用户不会在浏览器中看到重定向。

我刚刚使用了此模块。 如果您正在为大型项目寻找生产准备就绪的产品,那么DancerCatalyst会更好。 但是,Web :: Simple的重量轻且内置Moo集成,可以为各种一次性服务和较小的服务提供足够大的帮助。

翻译自: https://opensource.com/article/18/1/introduction-websimple-perl-module-minimalist-web-framework

job:simple

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值