|
Добрый день. Я сейчас прохожу курс повышения квалификации - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?
|
Web-программирование
Системы на основе HTML-шаблонов
Дальнейшим развитием CGI стали серверные технологии, в которых в шаблон HTML-документа включаются исполняемые фрагменты, написанные на встроенном языке программирования - C#, Java, PHP, Perl, Visual Basic или специальных языках шаблонов. На Perl написано немало систем для работы с шаблонами (templating system): от модулей, использующих несложную подстановку, до изощренных платформ программирования (application framework) для web-сервера. Perl в подобных системах применяется для обработки шаблонов (например, HTML::Template, Text::Template, Template Toolkit ) и динамической генерации на основе шаблонов. Во многих системах (например, Apache::ASP, AxKit, Embperl, Mason, Apache::XPP ) Perl применяется как встроенный язык, используемый для программирования действий в шаблонах. Все эти системы можно загрузить с сайта CPAN и установить обычным образом. (Подробнее об установке модулей речь шла в лекции "Библиотеки, пакеты и модули" .) Для работы с этими системами под ОС MS Windows проще всего загрузить с сайта perl.apache.org дистрибутив Perl, в состав которого входит сервер Apache с mod_perl и многие из перечисленных библиотек. Каждая из систем реализует оригинальный подход и обладает интересными возможностями, но мы остановимся подробнее на той из них, которая реализует тот же подход, что и в других распространенных системах программирования на основе шаблонов: ASP, JSP и PHP.
Система разработки web-сайтов Apache::ASP предлагает кросс-платформенные средства, аналогичные используемым в системе программирования ActiveState PerlScript для web-сервера Microsoft IIS. В этом подходе сочетаются естественное представление HTML-документа и возможность использовать богатые возможности языка программирования. В шаблоне HTML-страницы между тегами <% и %> располагаются фрагменты программы на языке Perl, которые выполняются при обработке запроса на страницу. Результат выполнения этих фрагментов включается в результирующую страницу, которая отсылается клиенту. Если переписать пример с гостевой книгой, используя классы из состава Apache::ASP, то он будет выглядеть так:
<html>
<head> <!-- шапка HTML-страницы -->
<meta http-equiv="content-type"
content="text/html; charset=windows-1251">
<title>Гостевая книга</title>
</head>
<body> <!-- тело HTML-страницы -->
<h3>Здесь Вы можете оставить свой отзыв</h3>
<form method="POST"> <!-- начало HTML-формы -->
<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="mailto:<%=$Request->Form('email')%>">
<%=$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. При необходимости несложно расширить функциональность этой программы, например, добавить поиск по любой из колонок таблицы.
