##### #Overview of Web.Development related modules. #Note that, below codes can not be executed just for overview intention. ##### #!/usr/bin/perl #CGI::FormBuilder::Source::Perl #Dancer, A lightweight yet powerful web application framework #HTML::FormHandler, HTML forms using moose #MIME::Types, Definition of MIME types #Mojolicious, Real-time web framework #Plack, Flexible superglue between web servers and perl web frameworks or code #Task::Catalyst, The elegant MVC web application framework. #Template, Template processing system #XML::Atom, atom feed and API implementation #XML:RSS, Creates and updates RSS files ##### #Dancer #If you don't want to write CGI scripts by hand, and find Catalyst too big or #cumbersome for your project, Dancer is what you need. ##### use Dancer; get '/hello/:name' => sub { return "why, hello here" . param('name'); }; dance; ##### #HTML::Formhandler ##### #arributes and methods #-creating a form #-processing the form #-getting data out #-accessing and setting up fields #-constraints and validation #-accessing errors #-clear form state #-miscellaneous atrributes #-Flags use HTML::FormHandler; #or a custom form: use MyApp::Form::User; my $form = HTML::FormHandler->new( ... ); $form->process( params => $params ); my $rendered_form = $form->render; if ($form->validated) { #perform validated form actions } else { #perform non-validated actions #or, return a result $result->render; } #a dynamic form my $form = HTML::Formhandler->new( name => 'user_form', field_list => [ 'username' => { type => 'Text', apply => [ { check => qr/^[0-9a-z]*\z/, message => 'contains invalid characters' } ], }, 'select_bar' => { type => 'select', options => \@select_options, multiple => 1, size => 4, } , ], ); ##### #MIME::Types ##### use MIME::Types; my $mt = MIME::Types->new(...); # MIMI::TYpes object my $type = $mt->type('text/plain'); # MIMI::Type object my $type = $mt->mimeTypeOf('gif'); my $type = $mt->mimeTypeOf('picture.jpg'); my $type = $mt->httpAccept('text/html, application/json;q=0.1'); ##### #Mojolicious, real-time web framwork. ##### #hooks #atrributes #methods #autoload #bundled files # Application package MyApp; use Mojo::Base 'Mojolicious'; # Route sub startup { my $self = shift; $self->routes->get('/hello')->to('fool#hello'); } # Controller package MyApp::Controller::Foo; use Mojo::Base 'Mojolicious::Controller'; # Action sub hello { my $self = shift; $self->render(text => 'hello world!'); } ##hooks #after_build_tx $app->hook(after_build_tx =>sub { my ($tx, $app) = @_; ... }); #before_dispatch $app->hook( before_dispatch => { my $c = shift; ... }); #after_static $app->hook(after_static => sub { my $c = shift; ... }); #before_routes $app->hook(before_routes => sub { my $c = shift; ... }); #around_action #before_render #after_render #after_dispatch #around_dispatch ##### #Plack, perl superglue for web frameworks and web servers(PSGI toolkit) ##### #modules and utilities #plack::handler #plack::loader #plack::util #psgi files #plackup, plack::runner #plack::middleware #plack::request, plack::response #plack::test #plack:test::suite
>>
More of Perl Web.Development
Mars
时间: 2024-11-05 16:11:35