что такое динамические страницы сайта

Что такое динамический веб-сайт?

что такое динамические страницы сайта. Смотреть фото что такое динамические страницы сайта. Смотреть картинку что такое динамические страницы сайта. Картинка про что такое динамические страницы сайта. Фото что такое динамические страницы сайта

Почему динамические веб сайты стоит создавать именно на связке PHP и MySQL?

Что из себя представляет динамический веб сайт?

Это сайт, состоящий из динамических страниц – шаблонов, контента и скриптов. Из этого вытекают следующие принципы динамического веб сайта.

Как происходит процесс генерации страницы?

Если коротко, то процесс описания может поместиться буквально в два слова – «запрос-ответ». Приведу конкретные шаги:

Преимущества динамического веб-сайта

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

Недостатки динамического веб-сайта

Более дорогая и долгая по времени веб-разработка.

Здесь надо исходить из стоящих перед вами задач. Например, для одностраничного лендинга, создавать динамику, слишком расточительно и ни к чему. А вот информационный сайт на чистом HTML, уже смотрится дико и неуместно. В конце концов, если не хотите (или вам дорого) вникать в премудрости создания динамического веб-сайта, то в сто раз лучше сделать информационный сайт на WordPress.

Реально ли в принципе за небольшой отрезок времени освоить связку PHP + MySQL, достаточных для создания обычного информационного сайта, имея в активе только HTML+CSS знания?

Как ускорить разработку динамического веб-сайта?

Самые популярные библиотеки и фреймворки языка PHP: CakePHP, Yii, Angular.

Источник

Динамическое обновление веб-страницы

что такое динамические страницы сайта. Смотреть фото что такое динамические страницы сайта. Смотреть картинку что такое динамические страницы сайта. Картинка про что такое динамические страницы сайта. Фото что такое динамические страницы сайта

Введение

Никого уже не удивишь концепцией динамического HTML, почти все сайты давно в той или иной мере используют javascript для того, чтобы сделать страницы интерактивными. А с появлением технологии AJAX стало возможным асинхронно генерировать запросы к серверу, чтобы изменять старые данные на сервере или получать новые. Но как именно обновлять структуру страницы? Кто должен генерировать новый html — сервер или javascript? А может, все вместе?

Посмотрим, как можно ответить на эти вопросы.

Для начала, я опишу жизненный цикл страницы. Сразу скажу, что я не собираюсь описывать этот процесс досконально, здесь требуется только понимание основной логики процесса.

Любое веб-приложение можно логически поделить на две составляющие — на клиентскую часть и серверную часть. К клиентской части относятся сам браузер и скрипты, которые он выполняет, к серверной — набор скриптов, которые генерируют ответ на любой запрос пользователя.

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

После получения страницы с сервера, браузер отображает её и запускает на выполнение приложенные к ней скрипты.
Клиентская часть реагирует на различные события — например, на клик по некоторому элементу, перемещение мыши или на истечение таймера. Для того, чтобы получить какие-то данные с сервера(или отправить что-то на него), используются дополнительные, обычно асинхронные, запросы.

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

Ближе к сути

Для удобства объяснения рассмотрим вариант обновления простой страницы с лентой новостей и, скажем, счетчиком подписчиков. Мы хотим, чтобы браузер регулярно проверял обновления ленты, добавляя новости по мере их появления. А еще мы хотим, чтобы каждый посетитель видел динамику роста популярности нашего сайта — пусть счетчик подписчиков тоже регулярно обновляется.

Тело нашей страницы может выглядеть, например, так:

Вариант 1 — дублирование

Основная идея — логику отображения знает и клиентская, и серверная часть. В таком случае, ответы на регулярные запросы со стороны клиента могут содержать исключительно данные — изменения в модели, и выглядеть, например, так:

При получении такого ответа клиентская часть «оборачивает» данные в html-теги, добавляет необходимые тексты и обновляет структуру страницы.

Серверу же знания об отображении нужны только для того, чтобы сгенерировать изначальную версию страницы.

Вариант 2 — всемогущий сервер и «толстые» ответы

Основная идея — логику отображения знает только сервер, клиентская часть получает уже готовый html-код элементов. Здесь ответ сервера выглядит так:

Замечу, что пересылается здесь весь html каждого компонента на странице. Реализуется же такой способ просто — сервер генерирует страницу по кускам, клиент при получении ответа заменяет тела отдельных элементов.

Вариант 2а — всемогущий сервер и «тонкие» ответы

Можно попытаться исправить главный недостаток предыдущего варианта. Сервер может не отправлять весь html компонента, а присылать только «дельту» — изменения, которые необходимо внести. Наш ответ тогда может стать таким:

Теперь клиент определяет элемент, который будет изменять, и то, как он его будет изменять, непосредственно из ответа сервера.

Вариант 3 — всемогущий javascript

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

Так в чем же существенное отличие от первого варианта? А заключается оно в том, что сервер не выполняет первоначальную генерацию страницы, её сборка осуществляется уже браузером клиента. Вариант этот только выглядит странным, он может пригодиться, если необходимо уменьшить нагрузку на сервер.

Заключение

Каждый из рассмотренных методов имеет право на жизнь, и может быть использован в проектах разной сложности. Лично я во встреченных мною проектах чаще всего видел первый вариант, несмотря на нарушение им моего любимого принципа DRY — Don`t repeat yourself.

А какие принципы вы используете при разработке динамических страниц?

Источник

Статические и динамические сайты — в чем разница и что выбрать.

Любые сайты в интернете, можно разделить на два типа: статические и динамические.

что такое динамические страницы сайта. Смотреть фото что такое динамические страницы сайта. Смотреть картинку что такое динамические страницы сайта. Картинка про что такое динамические страницы сайта. Фото что такое динамические страницы сайта

Вроде всё просто, пока не начнешь глубже копать эту тему. Например, сайт может быть динамичным, но при этом содержать статические элементы, а может быть наоборот, статичный сайт с динамическими элементами.

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

Что может быть статическим или динамическим?

При обсуждении, является ли сайт статичным или динамичным, вначале нужно определить, какой аспект сайта вы обсуждаете. Эти аспекты можно разделить на три вида:

Код веб-страницы может быть статическим или динамическим. Это довольно просто: статический контент — это контент, который жестко запрограммирован на странице. Динамические страницы получаются на ходу, после запроса пользователя путем обращения к CMS или какой-либо внешней базе данных.

что такое динамические страницы сайта. Смотреть фото что такое динамические страницы сайта. Смотреть картинку что такое динамические страницы сайта. Картинка про что такое динамические страницы сайта. Фото что такое динамические страницы сайта

Доставка

Доставка веб-страницы также может быть статической или динамической. Статическая доставка — это предварительно обработанные страницы, которые обычно кэшируются и доставляются через сеть доставки контента (CDN). Динамические страницы генерируются в реальном времени после запроса к серверу.

Браузер клиента

Браузер также может повлиять на то, является ли сайт статическим или динамическим. Статические сайты остаются неизменными для всех, кто обращается к ним, независимо от браузера. Даже если сайт не использует запросы к базе данных на сервере, но он может изменять страницу на стороне клиента с помощью Javascript.

Основные различия между динамическими (серверный рендеринг) и статическими (рендеринг на стороне клиента) сайтами

Вначале использования Интернета, все веб-страницы отображали одинаковый контент для каждого пользователя. Со временем многие веб-сайты стали использовать базы данных и такие серверные языки программирования, как Python, PHP, ASP, Ruby, Java и другие. Это позволило сайтам стать динамическими и отображать контент для пользователя в зависимости от настроек или ввода определенной информации.

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

Что такое динамический веб-сайт?

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

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

что такое динамические страницы сайта. Смотреть фото что такое динамические страницы сайта. Смотреть картинку что такое динамические страницы сайта. Картинка про что такое динамические страницы сайта. Фото что такое динамические страницы сайта

Хотя динамические сайты чрезвычайно эффективны, они также более сложные. Наряду с этой сложностью у динамичных сайтов есть много своих преимуществ и недостатков.

Преимущества динамических сайтов

Работа с базой данных

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

Использование CMS

Использование базы данных означает, что вы также можете использовать CMS. Контент, хранящийся в CMS, может быть разнообразным. То есть, сюда относится основное содержимое сайта: текст, картинки, видео и аудио контент. И вспомогательное содержимое: макет и настройки сайта, возможность размещения дополнительного программного кода, например, JavaScript кода для размещения рекламы и так далее.

Всё это обеспечивает гибкость при создании сайтов, а также CMS часто позволяют работать с сайтом сразу нескольким пользователям, (SEOшники, авторы, редакторы и прочие). И что самое интересное, пользователи могут управлять сайтом, не вдаваясь в программирование.

Низкая стоимость текущего обслуживания

Это дальнейшее следствие использования CMS. На рынке представлено множество различных CMS, и многие из них имеют хороший функционал, и при этом, бесплатны. Тем самым, для создания хорошо выглядящего сайта, не понадобится много расходов денег и времени.

Недостатки динамических сайтов.

Ограничения на дизайн

Когда создается страница по запросу пользователя, то в этот момент из базы данных на сервере извлекается некоторый контент, такой как текст и изображения. И весь этот текст, должен хорошо сочетаться с другим контентом на сайте. И чтобы самый разнообразный контент хорошо сочетался на сайте, для этого вначале придется очень постараться над дизайном самого сайта.

Если взять популярную CMS WordPress, то хотя здесь представлено большое количество самых разных шаблонов оформления, но фактически, веб-мастер всё равно не получает идеальный дизайн, который он хотел-бы использовать. Выбор дизайна, даже в WordPress, это всегда компромиссы. Как самому установить шаблон читайте в этой статье.

что такое динамические страницы сайта. Смотреть фото что такое динамические страницы сайта. Смотреть картинку что такое динамические страницы сайта. Картинка про что такое динамические страницы сайта. Фото что такое динамические страницы сайта

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

В зависимости от CMS может быть сложно применить сразу несколько дизайнов на одном сайте, чтобы отобразить разный тип контента на одном сайте. К примеру, вы не сможете сделать сильно отличную страницу с информацией о заказе, со страницей оплаты товара.

Динамичный сайт, может потребовать больших затрат.

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

Но как только нужно что-то уникальное, то это уже обойдется дороже. Например, вы решили внедрить какой-то уникальный виджет на сайте. Если программисты и дизайнеры будут разрабатывать его специально под вашу распространенную CMS, то им придется еще думать и о том, как внедрить его на сайте, и чтобы это не сломалось при следующем обновлении CMS.

Что такое статический сайт.

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

У выбора статичного сайта также есть свои преимущества и недостатки.

Преимущества.

Гибкость

Главное преимущество статического сайта — это гибкость, которую он предлагает. Каждая страница может быть разной. Дизайн буквально каждой страницы может меняться до неузнаваемости. На одной странице, контент может отображаться по всей ширине экрана, на другой странице, может быть левая или правая дополнительная колонка. На одной странице большой логотип в шапке, на другой мелкий логотип. В общем, на таких сайтах дизайнеры могут вдоволь проявить свою фантазию. И во многих случаях, это имеет большое значение.

Стоимость

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

Обслуживание такого сайта, также намного проще, а значит и дешевле. Причем, если например, WordPress тоже легко разместить на хостинге, то вот в случае возникновения различных проблем, таких как резко возросшая нагрузка на хостинг, справится будет сложно, а значит, скорее всего придется нанимать специалистов, что будет стоить дорого.

Время загрузки

Это второе важнейшее преимущество статического сайта. Поскольку статические сайты предварительно отрисовываются, то время загрузки у них очень быстрое. Они работают без выполнения сложных программ, без использования баз данных и тому подобного. Благодаря всему этому, такие сайты загружаются намного быстрее.

Недостатки.

Более сложное обновление.

Создать статический сайт можно с помощью различных инструментов, наподобие Adobe XD, но вот редактировать такой сайт, будет уже намного сложнее. И если вы не знакомы с HTML, CSS и с веб программированием, то весьма вероятно, вам придется просить других специалистов, чтобы они внесли даже простые изменения.

что такое динамические страницы сайта. Смотреть фото что такое динамические страницы сайта. Смотреть картинку что такое динамические страницы сайта. Картинка про что такое динамические страницы сайта. Фото что такое динамические страницы сайта

Более сложное масштабирование.

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

Стоимость.

Когда нужны изменения на сайте, то в этом случае, либо сам вебмастер должен хорошо разбираться в коде, либо придется нанимать программистов. И в этом случае, затраты на обновление сайта, будут значительно выше.

Так что выбрать?

Если говорить про весь интернет в целом, то уже давно динамические сайты в большинстве. Сейчас уже почти не осталось статических сайтов.

Особенно это актуально для технически сложных сайтов, таких блоги или интернет магазины.

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

В общем, выбирайте динамический или статический сайт, исходя из слабых и сильных сторон каждого из этих типов сайтов, а также исходя из ваших потребностей.

Источник

Динамический Web-сайт

Изо дня в день работая над обновлением содержимого своего Web-сайта, насыщая его интересными материалами, вы, вероятно, задумываетесь о том, что ежедневно создаются сотни новых Web-сайтов, которые также ежедневно пополняются сотнями новых документов. Как создаются все эти новые массивы страниц и каким образом они так быстро обновляются? Все это не так сложно, как кажется на первый взгляд, поскольку здесь используется концепция динамических Web-страниц.

Что такое статический Web-сайт?

Перед тем, как погрузиться в разработку динамического Web-сайта, важно понять, что представляют собой статический Web-сайт и статические Web-страницы, составляющие его основу. Статические Web-страницы создаются вручную, потом сохраняются и загружаются на сайт. Всякий раз, когда требуется изменить содержимое такой страницы, пользователь модифицирует ее на своем рабочем компьютере, применяя, как правило, HTML-редактор, сохраняет ее и затем заново загружает на Web-сайт. Внимательно присмотревшись к какому-нибудь порталу, допустим к CNN.com или BBC.co.uk, можно подумать, что для обновления содержимого своих сайтов эти компании привлекают армию верстальщиков. На самом же деле существует лучший способ — использование концепции динамического Web-сайта.

Что такое динамический Web-сайт?

Каждая отображаемая страница динамических Web-сайтов основана на шаблонной странице, в которую вставляется постоянно меняющееся информационное наполнение, которое обычно хранится в базе данных. Когда пользователь запрашивает страницу, соответствующая информация извлекается из базы, вставляется в шаблон, образуя новую Web-страницу, и пересылается Web-сервером в пользовательский браузер, который и отображает ее должным образом. Кроме информационного наполнения, динамически могут создаваться также и элементы навигации по Web-сайту. Таким образом, если вам нужно обновить содержимое своего сайта, вы просто добавляете текст для новой страницы, который затем вставляется в базу данных с помощью определенного механизма. В результате получается, что Web-сайт как бы сам себя обновляет.

Почему динамические сайты лучше

Сразу после того как динамический сайт создан и запущен в работу, начинают проявляться его преимущества. Теперь в вашем распоряжении имеется сравнительно небольшое количество шаблонных страниц, с помощью которых генерируются сотни, а может быть, и тысячи Web-страниц. Вид (дизайн) сайта может быть легко изменен с помощью модификации этих шаблонов. Изменение содержимого базы данных можно производить через Web-интерфейс с использованием HTML-формы, не вторгаясь при этом в технические детали каждой специфической СУБД.

Создание динамического сайта

Первое, что нужно для создания динамического сайта, — это Web-сервер, например Apache.

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

Немногие из принимаемых в бизнесе стратегических решений столь же значимы, как выбор платформы для Web-сервера. Характеристики сервера — это чрезвычайно важный фактор, определяющий надежность узла, его «отзывчивость» на запросы клиентов, а также то, какие усилия необходимо предпринимать для поддержания его в рабочем состоянии. При правильном выборе компонентов и качественном проекте Web-узел может стать для клиентов и партнеров новым, более удобным способом взаимодействия с вашей компанией. Перегрузка Web-сервера может привести к тому, что сервер баз данных или какой-либо иной ресурс станет недоступным для клиентов.

Крупные компании до недавнего времени делали ставки на Microsoft Internet Information Server, Netscape FastTrack, IBM WebSphere, а Apache в основном использовался небольшими компаниями. Однако сейчас ситуация несколько изменилась, и Apache начинает поддерживать работоспособность некоторых крупных Интернет-проектов, в частности Yahoo.

Полную версию статьи вы можете найти на нашем CD-ROM.

Apache предоставляет богатые возможности, позволяющие настроить Web-сервер в соответствии с потребностями индивидуальных и корпоративных пользователей. Настройка производится с помощью директив, содержащихся в конфигурационных файлах. Apache позволяет создавать виртуальные Web-узлы, а также выполняет функции proxy-сервера. Если нужно предоставить доступ к содержимому сервера лишь ограниченному кругу лиц, Web-сервер можно настроить так, чтобы при обращении к указанным каталогам сервер проверял регистрационные имена и пароли в собственной или в одной из подключенных к нему баз данных.

Далее вам нужно решить, как вы собираетесь хранить информационное наполнение (контент), которое отображается на Web-странице. В данной статье на конкретном примере мы покажем, как создать базу данных в СУБД MySQL, которая позволит нам разбить Web-контент на таблицы, содержащие поля и записи с данными. Поле — это дискретная единица данных в таблице. Например, мы можем создать таблицу tbl_news_items с полями col_title, col_date, col_fullstory, col_author. СУБД MySQL — отличный выбор для создания такой базы данных вследствие простоты в использовании и администрировании, свободной распространяемости для разных платформ, включая Linux и Windows, и быстро растущей популярности.

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

На самом деле нам необходимо создать три Perl-программы, или скрипта: один будет отображать ссылки на все имеющиеся пресс-релизы (pr-list-dbi.pl), другой — содержимое выбранного пресс-релиза (pr-content-dbi.pl), а третий позволит нам добавить свежий пресс-релиз в базу данных (pr-add-dbi.pl). Работу по верстке можно возложить на любимый HTML-редактор, например, Allaire HomeSite (http://www.allaire.com/). Только помните, что при создании шаблона необходимо оставлять пустые области, в которые будет вставляться динамическое наполнение (естественно, переменной длины).

После разработки общего дизайна для своих пресс-релизов просто вставьте в указанные выше пустые области специальные ключевые слова (см. об этом ниже). Как только пользователь запросит какой-либо пресс-релиз, Web-сервер обработает Perl-код и заменит ключевые слова в шаблонах информационным наполнением, извлеченным из базы данных, то есть каким-то конкретным пресс-релизом.

Добавление функциональности

Не представляет особых сложностей добавление функциональных возможностей к механизму публикации пресс-релизов. Можно отсортировать ссылки на доступные в базе данных пресс-релизы по дате или названию, группируя их по годам. Или, например, вы захотите отобразить случайный пресс-релиз на вашей Web-странице, время от времени предоставляя его информацию посетителям независимо от того, когда он был реально опубликован. Но скорее всего самой важной и полезной функциональностью будет добавление HTML-формы для ввода содержимого пресс-релиза и разработки CGI-программы на Perl в целях обработки этой формы и последующего размещения документа в базе данных. Напомним, что CGI (Common Gateway Interface) — протокол, механизм, или формальное соглашение между Web-сервером и отдельной программой. Сервер кодирует входные данные, например HTML-формы, а программа CGI декодирует их и генерирует поток выходных данных. В спецификации протокола ничего не сказано о каком-либо определенном языке программирования. Поэтому программы, соответствующие этому протоколу, могут быть написаны практически на любом языке — на C, C++, Visual Basic, Delphi, Tcl, Python или, как в нашем случае, на Perl.

Подведем некоторые итоги. Надеемся, что эта статья поможет вам оценить преимущества концепции динамических Web-страниц перед статическими. Применение данной концепции приведет к сокращению ручной работы, поможет распределить рабочую нагрузку сервера и позволит быстро увеличить количество информационного наполнения сайта. Комбинация из Apache, MySQL и Perl предоставит практически бесплатную, простую в использовании, гибкую в установке и настройке кросс-платформенную и масштабируемую среду разработки. Здесь мы не будем рассматривать особенности их установки, так как, во-первых, на это попросту не хватит места, отведенного для данной статьи, а во-вторых, каждое из этих средств поставляется вместе с весьма подробной документацией.

Создание базы данных в СУБД MySQL

Разработка модели базы данных

Первым и наиболее важным действием при создании базы данных является разработка ее модели. Итак, приступаем.

Нам нужно как-то назвать базу данных. Назовем ее db_website.

Необходимо определить, что именно будут содержать таблицы базы данных. В БД могут входить сотни таблиц. Сначала нам потребуется всего одна таблица для хранения наших пресс-релизов. Назовем ее tbl_news_items.

Следует определить поля, которые будет содержать наша таблица. Эти поля будут являть собой все элементы пресс-релиза. В нашем примере используются пять полей: col_id (числовой идентификатор пресс-релиза), col_title (название), col_date (дата публикации), col_fullstory (содержимое), col_author (имя автора). Поле col_id будет содержать уникальный идентификатор, по которому пользователь сможет запрашивать содержимое определенного пресс-релиза.

Создание базы данных

Теперь нам необходимо установить соединение с СУБД MySQL и создать нашу базу данных. Ниже мы покажем, как сделать это из командной строки. Однако существует множество систем управления, или менеджеров СУБД MySQL, которые позволяют администрировать ее, используя дружественный графический интерфейс.

Прежде всего вам обязательно следует знать основы языка запросов SQL (Structured Query Language). В поставку СУБД MySQL входит полное описание поддерживаемой спецификации SQL. Этот язык несложен для постижения, поскольку его операторы и их конструкции легко понять и запомнить. Для работы вам потребуются операторы создания (CREATE или INSERT), выборки (SELECT) и удаления (DROP или DELETE) данных, а также их изменения (UPDATE, MODIFY). В конкретных примерах мы воспользуемся только некоторыми из них.

Чтобы не рассматривать установку пользовательских учетных записей (user accounts) и назначение необходимых прав доступа, предположим, что вы используете учетную запись администратора (root).

Откройте терминальное окно (если вы работаете в графической оболочке X Window ОС Linux или в ОС Windows 9x/NT/2000) и установите соединение с СУБД MySQL, введя в командной строке mysql. В ответ вы должны получить приглашение для ввода команд mysql>.

Создадим нашу базу данных, введя:

После ввода каждой команды не забывайте печатать символ (;). Он очень важен, поскольку посылает MySQL сигнал конца ввода команды.

Далее необходимо послать команду, указывающую системе MySQL, какую конкретно базу данных мы собираемся использовать. Введите:

Создадим таблицу tbl_news_items, где определим тип данных, которые будут храниться в ее полях. Введите:

Введите еще несколько подобных запросов для вставки. Чтобы просмотреть то, что хранится в базе данных, в командной строке mysql> введите:

Создание динамических Web-страниц на Perl

Подготовка к работе

Для запуска Perl-программ понадобится интерпретатор Perl версии 5.005 или 5.6 дистрибутивов Perl Standard или ActiveState Perl для UNIX или Win32. Если вы будете заниматься разработкой приложений для функционирования под Win32, то пакет от ActiveState несколько удобнее в использовании, к тому же в него входит утилита PPM для установки дополнительных модулей.

Для организации взаимодействия наших Perl-программ с СУБД MySQL необходимо, чтобы в поставку Perl входил модуль DBI. Поскольку модуль в основном ничего сам не делает, а перекладывает все операции по взаимодействию с базами данных на соответствующий им драйвер, то требуется установка библиотеки DBD-Mysql (драйвер к БД MySQL для модуля DBI). Как заявил Тим Бьюнс (Tim Bunce), автор и разработчик указанного модуля, «DBI — это API-интерфейс для организации доступа к базам данных из Perl-программ. Спецификация DBI API определяет набор функций, переменных и правил, используемых для прозрачного интерфейса с базами данных».

Концепция драйверов баз данных весьма удобна, поскольку в своем Perl-приложении вы используете стандартные для DBI вызовы, которые затем переадресуются модули соответствующему драйверу, а тот, в свою очередь, уже напрямую будет взаимодействовать с БД, не требуя от вас изучения технических особенностей каждой конкретной СУБД. Таким образом, существуют драйверы DBD::Sybase, DBD::Oracle, DBD::Informix и т.д. (рис. 1, 2).

Немного выйдем за рамки тематики статьи. Допустим, что в поставку DBI не входит драйвер для специфической СУБД. В данном случае на помощь придет мост DBD-ODBC. Достаточно создать новый источник данных (Data Source Name) для драйвера ODBC (Open DataBase Connectivity), где нужно выбрать тип этой СУБД, адрес хоста, по которому надо установить соединение, имя базы данных и авторизационные данные, то есть имя пользователя и пароль (рис. 3). И затем, используя модуль DBI, взаимодействовать с базой данных. Кроме того, как правило, в стандартную поставку ActiveState Perl входит модуль Win32::ODBC (Win32-ODBC). Работа с ним немного отличается от работы с DBI, но в целом очень похожа. Разница лишь в том, что Win32::ODBC — модуль только для Win32-систем и позволяет работать с «родными» функциями ODBC более эффективно, чем DBD::ODBC.

Между ODBC и DBI можно провести параллель. DBI — это аналог ODBC Administrator (менеджера драйверов баз данных). Каждый DBD-драйвер по своим функциям соответствует ODBC-драйверу. Может смутить лишь тот факт, что существует, как говорилось выше, драйвер DBD::ODBC. Но он всего лишь позволяет установить связь DBI с ODBC-драйверами.

Для установки DBI и DBD-Mysql, с помощью утилиты PPM в среде Win32 введите в командной строке:

Обратите внимание, что в этот момент ваш компьютер должен быть подключен к Интернету. Если же соответствующий модуль имеется у вас на локальном диске, воспользуйтесь справочной информацией, введя команду:

Для пользователей UNIX-систем установка модуля DBI будет проходить практически так же, как и установка других Perl-модулей:

Можно также воспользоваться оболочкой CPAN. Если же на вашем компьютере установлена UNIX-версия пакета от ActiveState, то можно работать и с установочной утилитой PPM. Иногда бывает, что оболочки CPAN и PPM не функционируют, если в сети предприятия, к которой подключен ваш компьютер, установлен брандмауэр, или сетевой экран (firewall). В данном случае вам помогут только модули с исходными текстами, загруженные вручную. Для их установки и подключения к Perl или Apache потребуется интерпретатор Perl, компилятор C/C++ или GCC/PGCC и какая-либо из утилит-сборщиков make (из поставки одного из клонов UNIX, а также Microsoft Visual C++), nmake или dmake. Таким образом, процедура установки модулей несколько усложняется. Почти с каждым из них поставляется документация по «сборке», благодаря которой у вас не должно возникнуть особых трудностей.

Вывод списка статей

Для систем DOS/Windows путь к cgi-bin может выглядеть так:

Используя свой любимый текстовый редактор, создайте файл pr-list-tpl.htm:

Этот файл предназначен для отображения списка всех доступных пресс-релизов.

Создайте файл pr-list-block-tpl.htm, который будет отображать каждый блок с найденным пресс-релизом в виде таблицы:

Создайте файл pr-content-tpl.htm, который будет отображать содержание пресс-релиза:

Создайте Perl-скрипт pr-list-dbi.pl, который будет читать данные из базы данных db_website и, используя шаблонные HTML-файлы, отображать список пресс-релизов (текст этого скрипта вы сможете найти на нашем компакт-диске).

А теперь пройдемся по листингу кода и рассмотрим, как работает программа вывода списка пресс-релизов.

Строки 1-9 представляют собой как бы инициализирующий блок, в котором объявляются все глобальные переменные и константы:

Строки 11-22 представляют собой тело программы:

Строки 26-39 — тело процедуры read_db(), предназначенной для считывания содержимого таблицы tbl_news_items, в которой хранятся наши пресс-релизы:

Строки 41-53 — тело процедуры ins_data(), реализующей вставку извлеченных из БД данных в исходящий поток данных; строки 55-63 — тело процедуры pr_block(), вызываемой в цикле из процедуры ins_data():

Вывод текста пресс-релиза

После того как мы вывели список всех имеющихся в базе данных пресс-релизов (рис. 4), нужно дать пользователю возможность просмотреть текст какого-нибудь из них (соответствующий скрипт вы также сможете найти на нашем компакт-диске).

Новый скрипт pr-read-dbi.pl будет незначительно отличаться от уже созданного нами pr-list-dbi.pl.

Данный листинг на 98% походит на листинг 1, хотя, имеет некоторые незначительные отличия:

Создание нового пресс-релиза

Расширим функциональность нашей системы, добавив возможность создания новых пресс-релизов, без необходимости непосредственной работы с базой данных для пополнения таблицы tbl_news_items новой информацией.

Итак, новая Perl-программа (которая, как и предыдущие две, находится на компакт-диске) будет отличаться от предыдущих прежде всего тем, что предназначена не для отображения данных, а для их добавления в БД. Следовательно, мы должны несколько изменить часть, отвечающую за взаимодействие с БД, применив SQL-запрос INSERT и соответствующие ему операторы модуля DBI.

Строки 12-18 — это тело основной программы:

Здесь мы проверяем, поступила ли команда на добавление пресс-релиза в базу данных. Как только она поступила, устанавливаем соединение с БД (15), выполняем подпрограмму app_pr() (16) и завершаем соединение (17). Если же команды не было, то просто отображаем форму заполнения (13) для данных пресс-релиза — процедура show_form().

Строки 20-36 — это тело процедуры добавления пресс-релиза pr_add():

Перегрузка системы

Поскольку вы разрабатываете динамический Web-сайт, то соответственно количество информации на нем может расти весьма быстро. Кроме того, по мере роста популярности вашего ресурса растет и число его посетителей, что может привести к перегрузкам сервера, то есть к понижению производительности системы. Перед тем как начать поиски путей увеличения мощности аппаратных средств и пытаться найти конфигурацию новой системы, можно попробовать устранить одну из возможных причин чрезмерного потребления оперативной памяти. Виновником может оказаться тот же Perl. Дело в том, что каждый раз при обращении к тому или иному Perl-скрипту, Web-сервер загружает интерпретатор в оперативную память (он занимает от 500-1000 Кбайт на жестком диске), а последний разбирает программу от начала до конца в поисках синтаксических ошибок. После этого он вновь читает ее, инициализируя переменные и функции, считывает вводимые данные (параметры), обрабатывает и возвращает результаты. Представляете, что происходит, если одновременно пресс-релизы хотят просмотреть сотни посетителей вашего сайта?

Для ускорения этого процесса созданы специальные решения, представляющие собой дополнительные модули для Web-сервера Apache — mod_fastcgi и mod_perl.

Модуль FastCGI (mod_fastcgi) предполагает широкое применение средств обмена данными между работающими процессами (задачами) операционной системы. В начале своей работы Web-сервер активирует CGI-программу и оставляет эту программу и несколько ее копий работающими в фоновом режиме. Любые запросы к программе будут просто переданы уже активным копиям, что избавит сервер от дополнительной нагрузки, связанной с повторной активацией процесса.

Модуль mod_perl позволяет загрузить Perl в оперативную память в то же адресное пространство, что и сам Web-сервер Apache, и оставить Perl в памяти до завершения работы последнего, не позволяя загружать очередную копию интерпретатора при обращении к CGI-программе. Этот модуль применяется чаще, чем FastCGI, поскольку не требует никаких изменений в программе.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *