Rails или маршрутизация в стиле Django в Perl


Я привык к тому, как Rails отображает маршрут или Django использует регулярное выражение на маршруте (я не ожидаю в Django, но это то, что я слышал, как он делает это маршрутизация) и как они используют стиль постоянных ссылок для доступа к веб-странице частиц. Можно ли сделать то же самое в Perl?

2 3

2 ответа:

Я думаю, что веб-фреймворк Perl с большинством Rails-подобных маршрутов будет Mojolicious

Создатель Mojolicious написал отличный пост в блоге под названием "диспетчеры для чайников", сравнивая основные веб-фреймворки Perl, Ruby и Python и выделяя то, что он считал улучшениями, которые он сделал с маршрутизацией на 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 framework можно найти на Perl5 wiki


И если вы находитесь в неблагоприятных рамках, то взгляните на Plack (также смотритеPSGI wikipedia). Это то же самое, что 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 и уходите.

Вполне возможно с катализатором, хотя никто никогда не использует его, за исключением интернационализации внутренне определенных путей отправки.