Rails или маршрутизация в стиле Django в Perl
Я привык к тому, как Rails отображает маршрут или Django использует регулярное выражение на маршруте (я не ожидаю в Django, но это то, что я слышал, как он делает это маршрутизация) и как они используют стиль постоянных ссылок для доступа к веб-странице частиц. Можно ли сделать то же самое в Perl?
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-адрес для маршрутизации действий:
Jifty
(использует хороший маршрут DSL )Dancer
(Руби Синатра - как)Mojolicious::Lite
(то же самое)Squatting
(вдохновленный Ruby кемпинг )Web::Simple
Более полный список 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
и уходите.
Вполне возможно с катализатором, хотя никто никогда не использует его, за исключением интернационализации внутренне определенных путей отправки.