我已经习惯了 Rails 映射路由或 Django 在路由上使用正则表达式的方式(我不期望在 Django 中,但这是我听说它是如何路由的)以及他们如何使用用于访问粒子网页的永久链接。是否可以在 Perl 中做同样的事情?
最佳答案
我认为具有大多数类似 Rails 路由的 Perl Web 框架将是 Mojolicious
Mojolicious
的创建者确实写了一篇名为“Dispatchers for dummies”的优秀博客文章,比较了主要的 Perl、Ruby 和 Python Web 框架,并强调了他认为他在 Mojolicious
上对路由所做的改进。 .
不幸的是,上面的帖子不再在线 :( 相反,您必须满足于 Mojolicious::Guides::Routing
文档。这是文档中的路由示例:
package MyApp;
use base 'Mojolicious';
sub startup {
my $self = shift;
# Router
my $r = $self->routes;
# Route
$r->route('/welcome')->to(controller => 'foo', action => 'welcome');
}
1;
还有其他 Perl 框架提供直接 URL 到操作路由:
-
Jifty
(使用漂亮的 routing DSL ) -
Dancer
( ruby Sinatra -like) -
Mojolicious::Lite
(同上) -
Squatting
(灵感来自 Ruby Camping ) -
Web::Simple
Perl web frameworks 的更完整列表可以在 Perl5 wiki 上找到
如果您对框架不利,请查看 Plack
(另见 PSGI 维基百科)。这与 Rack 相同关于 Ruby 和 WSGI在 Python 上。
这是一个快速而肮脏的 Plack 示例:
use 5.012;
use warnings;
my $app = sub {
my $env = shift;
given ($env->{PATH_INFO}) {
return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'Hello Baz!' ] ]
when '/hello/baz';
default {
return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'Hello World' ]];
}
}
}
然后使用 plackup above_script.psgi
就可以了。
关于ruby-on-rails - Perl 中的 Rails 或 Django 样式路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672462/