Сервер web-приложений Zope

 
 

Если кому-нибудь везёт, не завидуй ему, а порадуйся с ним вместе, и его удача будет твоей. (Эзоп)

DenXX Planet >> Русская версия >> Что мне интересно? >> Программирование >> Сервер Web-приложений Zope

   
 

Что почитать:

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

Zope - сервер веб-приложений, написанный языке программирования Python и предназначенный для создания систем управления контентом, интранет-приложений, порталов и прочих проектов. Так, по крайней мере поясняют сами разработчики Zope, но такое описание весьма расплывчато. Положение отягощает также и то, что русскоязычной документации по Zope практически нет, а та, которая есть, оставляет тяжелое впечатление. Тем не менее в России есть провайдеры, которые уже предоставляют услуги хостинга с Zope (например, square.spb.ru) или ставят его для клиента по договоренности. Так как Zope относится к классу продуктов с открытым кодом, то получить и установить его на вашей машине не составляет трудности. Он есть во всех дистрибутивах UNIX-подобных систем (Linux, семейство BSD), а для Windows его можно взять на сайте разработчиков - www.zope.org.

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

Zope – сервер веб-приложений на языке Python

Основная смысловая единица Zope - контейнер. С одной стороны - это директория, в которой хранятся объекты, но свойства этого контейнера и методы управления им позволяют весьма гибко пользоваться этой единицей хранения информации. Как создать, например, новостную колонку? Создаем контейнер, в котором будут создаваться текстовые файлы для каждой новости, а в родителе (контейнере более высокого уровня) этого контейнера пишем небольшой скрипт (даже не скрипт; пользуемся языками разметки Zope - 2-3 строчки), позволяющий вывести ссылки на файлы или содержание этих файлов на веб-страницу, сортируя их по дате создания файла. Можно создать специальные свойства для этих файлов, помимо типовых, и производить сортировку по ним. После этого создаем пользователя, наделенного правами редактировать только этот контейнер, создавая файлы с новостями, и отдаем наполнение колонки в его руки. Он заходит на страницу вида http://127.0.0.1:8080/texts/manage (manage - это страница с интерфейсом управления, предоставляемой Zope) и создает там тексты. Можно, естественно, запретить создание новых объектов в контейнере, а разрешить только редактирование существующих.

Контейнер – основа концепции Zope

Графический пользовательский интерфейс сервера web-приложений Zope

Zope предоставляет хороший инструментарий и для программиста. Есть два языка для использования совместно с тегами HTML - DTML и ZPT. Язык тегов DTML (Document Template Markup Language) позволит очень быстро создавать динамические страницы даже человеку, мало знакомому с языками программирования. ZPT (Zope Page Templates) создан для обеспечения полной совместимости с XML; на нем создавать сайт уже посложнее, но совместимость того стоит. Также данный язык рекомендуется для задач "разделения контента и дизайна". Уже эти инструменты - тегообразные языки программирования, позволяют решить много задач, но в Zope можно использовать и полноценный скриптовый язык Python, а в новых версиях появилась поддержка и такого языка, как Perl. Большие возможности предоставляет технология Acquisition, способная видеть объекты более высоких уровней в подчиненных контейнерах, что позволяет, например, создавать один метод в корневом объекте и использовать его во всех ветках структуры объектов.

Если вы не хотите создавать свою систему с нуля, то можно воспользоваться готовыми системами управления контентом, реализованными на Zope - например, Plone, которую можно также получить у ее разработчиков - www.plone.org. Многие просто берут и ставят Plone, не делая попыток даже изменить дизайн, создавая сайты-близнецы.

В Zope богатый набор инструментов для программирования

Но, как и другой любой инструмент, Zope пригоден для определенного круга задач. Он очень хорош для работы с разнородной информацией в виде текстовых файлов и рисунков, когда надо создать разнообразные структуры для их хранения, разграничив к ним доступ, обеспечить систему для их управления, создать полноценный поиск. А вот если вы используете базы данных в вашем проекте, то, возможно, Zope будет не самым лучшим выбором. Это не значит, что в нем нет возможностей для работы с ним (как раз наоборот), просто существуют другие инструменты, более удобные для для работы с ними. Иначе говоря, среда Zope - это и есть некая база данных для хранения информации оптимизированная для информации с определенной структурой, и присоединять к ней другие базы данных можно, но имеет ли это смысл? Мы потерям все преимущества Zope, которые можно использовать при работе с ее контейнерами.

Недостатки Zope

Как уже упоминалось выше, главным недостатком Zope является отсутствие какой-либо документации особенно на русском языке. Большинство разработчиков пользуется классической ZopeBook на английском языке. Также не способствует популярности основной язык Zope - Python, поскольку он не столь распространен в нашей стране. Добавление Perl как дополнительного скриптового языка, думаю, не решит этой проблемы, так как сам Zope уже создан на Python, и скрипты на нем сидят как родные, а с Perl "выжать" такую же отдачу будет сложнее. И хотя провайдеры с поддержкой Zope есть, но их не такое количество, чтобы имя Zope было на слуху - это, естественно, не способствует ее популярности.

   
 
   

 
 
 

А вы уверены, что нашли свой путь в жизни?

 
 
 
Да:49
Нет:121
 
 

Rambler's Top100


  ICQ: 215-962-758
  Home: г.Тула
Сейчас:                  
   
   
2006 © All rights reserved. Made by DenXX