ruby-on-rails - Perl 中的 Rails 或 Django 样式路由

标签 ruby-on-rails django perl routing url-routing

我已经习惯了 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 到操作路由:

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/

相关文章:

python - 将 Django Web 应用程序数据库连接到 Pythonanywhere 上的 postgresql

Perl:使用 shell 命令(管道)处理字符串

regex - perl的$-[0]对于非ASCII数据产生意外结果

ruby-on-rails - 为什么我的 person_ids 哈希中有一个空数组元素?

ruby-on-rails - 使用具有继承资源的演示者

ruby-on-rails - 参数错误 : Wrong Number of Arguments (2 for 1) when using parameters

ruby-on-rails - 无法在 Windows 上的 Rails 中安装 libv8 3.11.8.17

django - 导入错误 : No module named comments django

python - Django - 使用配置文件扩展用户模型,但也使用不同的用户类型

perl - 如何在 Perl 对象中定义前/后增量行为?