Чтение онлайн

на главную - закладки

Жанры

Язык программирования Perl
Шрифт:

<br/>Имя: <!-- 1-е поле формы -->

<input name="nick" type="text" size="8"

value="<%=$Request->Form('nick')%>"/>

<br/>Э-почта: <!-- 2-е поле формы -->

<input name="email" type="text" size="32"

value="<%=$Request->Form('email')%>"/>

<br/>Комментарий:<br/> <!-- 3-е поле формы -->

<textarea name="comments" rows="5" cols="50">

<%=$Request->Form('comments')%>

</textarea><br/>

<input type="submit" value="Отправить"/> <!--
кнопка -->

</form> <!-- конец HTML-формы -->

<hr/>

<% if($Request->Form('nick')) { %>

<a href="#">

<%=$Request->Form('nick')%>

</a> пишет:<br/>

<%=$Request->Form('comments')%><br/>

<hr/>

<% } %>

</body>

</html>

Обращение к значениям полей формы происходит с помощью метода Form предопределенного объекта $Request, хранящего информацию HTTP-запроса. Система Apache::ASP предоставляет программисту полный набор средств для динамического создания страниц, включая средства работы с клиентскими сеансами. Чтобы продемонстрировать возможности встроенного в шаблоны языка Perl, напишем шаблон ASP, реализующий web-интерфейс к базе данных. Perl в нем используется для извлечения из базы данных информации о моллюсках, производящих жемчужины, а также для формирования в цикле строк таблицы на основании результатов запроса. Фрагменты программы на Perl, встроенные в текст шаблона, выделены жирным шрифтом:

<% # начало встроенного Perl

use DBI; # используем DBI

my $table = "mollusc"; # подключаемся к БД

my $dbh = # через драйвер DBD::SQLite

DBI->connect("dbi:SQLite:dbname=$table","","") or die;

my $sth = # готовим выборку строк таблицы

$dbh->prepare("SELECT id,name,latin,area FROM $table")

or die $dbh->errstr;

$sth->execute or die $sth->errstr; # и выполняем запрос

%>

<html> <!-- начало шаблона -->

<head><meta http-equiv="content-type"

content="text/html; charset=windows-1251">

<title>Коллекция раковин</title></head>

<body>

<h3 style="color:blue;">Коллекция раковин</h3>

<table border="1" cellpadding="1" cellspacing="0">

<!-- в цикле заполняем строки таблицы из БД -->

<% while (my $row = $sth->fetchrow_hashref) { %>

<tr>

<td rowspan="2"><img src="<%=$row->{id}%>.jpg"/></td>

<td><b><%=$row->{name}%></b>

<br/><i><%=$row->{latin}%></i></td>

</tr>

<tr><td><%=$row->{area}%></td></tr>

<% } %>

</table>

<% $dbh->disconnect; %> <!--
отсоединяемся от БД -->

<body> <html> <!-- конец шаблона -->

HTML-страница, сформированная в результате выполнения программы, приведена на рис. 18.2. При необходимости несложно расширить функциональность этой программы, например, добавить поиск по любой из колонок таблицы.

Рис. 18.2.Web-интерфейс к базе данных

Дальнейшая унификация ресурсов сети Интернет базируется на применении XML - расширяемого языка разметки (eXtensible Markup Language), стандартизованного консорциумом W3C. XML описывает правила создания прикладных языков разметки, называемых XML-приложениями (XML application). К настоящему времени созданы сотни прикладных языков на основе синтаксиса XML. Среди наиболее распространенных языков можно упомянуть CML (описание химических данных), GML (описание географических данных), Jabber (обмен сообщениями), MathML (описание математических формул), RDF (описание информационных ресурсов), SMIL (описание мультимедийных презентаций), RSS (аннотации содержимого сайтов), SVG (масштабируемая векторная графика), WDDX (обмен данными), WebDAV (web-папки), XML/EDI (обмен бизнес-данными), XML-RPC (удаленный вызов процедур), XUL (описание пользовательского интерфейса). Использование единой грамматики XML для прикладных языков разметки позволяет обрабатывать их унифицированными программными средствами. Языки разметки на основе XML создаются преимущественно для описания данных в различных областях знаний. В формате XML данные представлены в текстовом виде, чаще всего с использованием кодировки UTF-8, поэтому они без труда пересылаются по сети и обрабатываются программами на всех компьютерных платформах. Специальный расширяемый язык стилей XSL (eXtensible Style Language) создан для унифицированного преобразования XML в другие форматы, например, для визуального представления XML-данных в виде документов в формате HTML или RTF.

В Perl имеется богатый набор средств для работы с разными языками разметки на основе XML: это и универсальные инструменты, и специализированные модули для конкретных XML-приложений. Использованию XML-технологий в программировании на языке Perl посвящена книга [19] и ее перевод [45], а в книге [30] рассматривается работа с графикой в формате SVG. Для примера познакомимся с библиотекой SVG, предназначенной для программного создания масштабируемых векторных изображений в формате XML. Чтобы составить представление об этом формате и проиллюстрировать возможности этой библиотеки, напишем CGI-программу, динамически формирующую документ SVG. Она будет показывать на простой диаграмме распределение данных о посещаемости сайта по основным доменам:

use CGI qw/:standard/; # применим библиотеку CGI

use SVG; # и SVG

my $p = CGI->new; # создадим объект CGI и зададим

print $p->header(-type=>'image/svg+xml'); # тип документа

# создадим объект SVG размером 400 на 300 пикселей

my $svg= SVG->new(width=>400, height=>300);

# разместим синий текст, начиная с координат 32,32

Поделиться:
Популярные книги

Кодекс Охотника. Книга IV

Винокуров Юрий
4. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга IV

An ordinary sex life

Астердис
Любовные романы:
современные любовные романы
love action
5.00
рейтинг книги
An ordinary sex life

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Защитник

Кораблев Родион
11. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Защитник

Неестественный отбор.Трилогия

Грант Эдгар
Неестественный отбор
Детективы:
триллеры
6.40
рейтинг книги
Неестественный отбор.Трилогия

Метаморфозы Катрин

Ром Полина
Фантастика:
фэнтези
8.26
рейтинг книги
Метаморфозы Катрин

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Хозяйка Междуречья

Алеева Елена
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Хозяйка Междуречья

В теле пацана 4

Павлов Игорь Васильевич
4. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 4

Ротмистр Гордеев 2

Дашко Дмитрий
2. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 2

Неожиданный наследник

Яманов Александр
1. Царь Иоанн Кровавый
Приключения:
исторические приключения
5.00
рейтинг книги
Неожиданный наследник

Курсант: назад в СССР 2

Дамиров Рафаэль
2. Курсант
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Курсант: назад в СССР 2

Сердце Дракона. Двадцатый том. Часть 2

Клеванский Кирилл Сергеевич
Сердце дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Сердце Дракона. Двадцатый том. Часть 2

Треск штанов

Ланцов Михаил Алексеевич
6. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Треск штанов