Zope

редактировать
Zope
Zope logo.png
Тип сайтаPython веб-фреймворк разработка
Доступно наанглийском языке
СозданоZope Corporation
EditorZope Corporation
URLzope.readthedocs.io
КоммерческийNo
Регистрациянет
Запущениюль 1999 (1999-07)
Текущий статусАктивный
Лицензия на содержимоеОбщественная лицензия Zope

Zope - это семейство бесплатных серверов с открытым исходным кодом веб серверов приложений, написанных на Python и связанное с ними онлайн-сообщество. Zope расшифровывается как «Z Object Publishing Environment» и была первой системой, использующей теперь распространенную методологию публикации объекта для Интернета. Zope был назван Python приложением-убийцей, приложением, которое помогло привлечь внимание к Python.

За последние несколько лет сообщество Zope создало несколько дополнительных веб-фреймворков с разными целями и принципами, но разделяя философию, людей и исходный код. Zope 2 по-прежнему является наиболее распространенным из этих фреймворков, во многом благодаря системе управления контентом Plone , которая работает на Zope 2. BlueBream (ранее называвшийся Zope 3) менее распространен, но лежит в основе несколько крупных сайтов, в том числе Launchpad. Grok начинался как более удобный для программистов фреймворк, «Zope 3 для пещерных людей», а в 2009 году Pyramid приобрел популярность в сообществе Zope как минималистичный фреймворк, основанный на принципах Zope.

Содержание
  • 1 История
  • 2 Zope Foundation
  • 3 Zope 2
  • 4 BlueBream
    • 4.1 История
    • 4.2 Технология
  • 5 Zope Toolkit
  • 6 Grok
  • 7 Zope 4
  • 8 Шаблоны страниц Zope
  • 9 Известное программное обеспечение, использующее Zope
  • 10 См. Также
  • 11 Ссылки
  • 12 Внешние ссылки
История

Была создана Zope Corporation в 1995 г. в Фредериксбурге, Вирджиния под названием Digital Creations, в качестве совместного предприятия с InfiNet (совместное предприятие сети газет). Компания разработала систему тематической рекламы для Интернета. В 1997 году компания стала частной и независимой. Инженеров-программистов компании возглавляет технический директор Джим Фултон. PythonLabs, создатели Python, стали частью компании в 2000 году (основатель Python Гвидо ван Россум покинул Zope Corp в 2003 году).

То, что сейчас известно как Zope 2, началось с слияния три отдельных программных продукта - Bobo, Document Template и BoboPOS - в сервер приложений Principia. По просьбе своего крупнейшего инвестора, Opticality Ventures, Principia была переиздана как бесплатное программное обеспечение под названием Zope в 1998 году. Bobo, а следовательно, и Zope, были первым решением для публикации объектов в Интернете.

В ноябре 2004 года была выпущена Zope 3. Zope 3 - это полная перезапись, которая сохраняет только исходную базу данных объектов ZODB. Он непосредственно предназначен для разработки корпоративных веб-приложений с использованием новейших парадигм разработки. Zope 3, однако, несовместим с Zope 2, поэтому вы не можете запускать приложения Zope 2 на Zope 3. Первоначально он был предназначен для внедрения уровня обратной совместимости, чтобы программное обеспечение Zope 2 могло работать на Zope 3. Вместо этого модуль, известный как Five представила новую парадигму Zope 3 в Zope 2, хотя полная совместимость и в этом случае невозможна.

Существование двух несовместимых веб-фреймворков под названием Zope вызвало большую путаницу. В ответ в январе 2010 года Zope 3 был переименован в BlueBream. «Зоп» и «голубой лещ» - названия разновидностей рыб, Ballerus ballerus.

Zope Foundation
Zope Foundation
Основанамарт 2006 г.; 14 лет назад (2006-03)
Типнекоммерческая
FocusПрограммное обеспечение с открытым исходным кодом
МетодОбщественная лицензия Zope
Веб-сайтFoundation.zope.org

Zope Foundation - это организация, которая способствует развитию платформы Zope, поддерживая сообщество, которое разрабатывает и поддерживает соответствующие программные компоненты. Сообщество включает в себя разработчиков программного обеспечения с открытым исходным кодом, документации и веб-инфраструктуры, а также потребителей программной платформы из бизнеса и организаций. Он управляет веб-сайтами zope.org, инфраструктурой для совместной работы с открытым исходным кодом.

Zope 2
Zope 2
Снимок экрана Интерфейс управления Zope в веб-браузере Интерфейс управления Zope в окне веб-браузера.
Разработчик (и) Zope Corporation
Первоначальный выпуск1998; 22 года назад (1998)
Стабильный выпуск 2.13.30 / 2020-02-14
Написано наPython
Операционная система Кросс-платформенная
Тип Веб-сайт сервер приложений
Лицензия Общественная лицензия Zope
Веб-сайтwww.zope.org Измените это в Викиданных

Веб-сайт Zope обычно состоит из объекты в базе данных объектов Zope, а не файлы в файловой системе , как это обычно бывает с большинством веб-серверов. Это позволяет пользователям использовать преимущества объектных технологий, таких как инкапсуляция. Zope отображает URL-адреса на объекты, используя иерархию включения таких объектов; методы также считаются содержащимися в своих объектах. Данные также могут храниться в других базах данных или в файловой системе, но ZODB является наиболее распространенным решением.

Zope предоставляет два механизма для создания шаблонов HTML : язык разметки шаблонов документов (DTML) и шаблоны страниц Zope (ZPT). DTML - это язык на основе тегов, который позволяет реализовать простые сценарии в шаблонах. DTML имеет условия для включения переменных, условий и циклов. Однако DTML может быть проблематичным: теги DTML, перемежающиеся с HTML, образуют недействительные HTML-документы, и его использование требует осторожности при включении логики в шаблоны, чтобы сохранить читаемость кода. Многие ведущие разработчики Zope не одобряют использование DTML. ZPT - это технология, устраняющая недостатки DTML. Шаблоны ZPT могут быть либо правильно сформированными документами XML, либо документами HTML, в которых вся специальная разметка представлена ​​как атрибуты в пространстве имен TAL (Template Attribute Language ). ZPT предлагает очень ограниченный набор инструментов для условного включения и повторения XML-элементов. Следовательно, шаблоны обычно довольно простые, а большая часть логики реализована в коде Python. Одним из значительных преимуществ шаблонов ZPT является то, что их можно редактировать в большинстве графических редакторов HTML. ZPT также предлагает прямую поддержку интернационализации.

Zope 2 лежит в основе системы управления контентом Plone , а также ERP5 с открытым исходным кодом система планирования ресурсов предприятия.

BlueBream
BlueBream
Разработчик (и) Zope Corporation
Первоначальный выпуск2004; 16 лет назад (2004 г.)
Стабильный выпуск 1.0 / 18 января 2011 г.; 9 лет назад (18.01.2011)
Написано наPython
Операционная система Кросс-платформенная
Тип Веб сервер приложений
Лицензия Общественная лицензия Zope
Веб-сайтbluebream.zope.org

BlueBream - это переработанный разработчиками Zope сервер приложений Zope 2 web . Он был создан под названием "Zope 3", но существование двух несовместимых фреймворков с одинаковым именем вызвало большую путаницу, и Zope 3 был переименован в "BlueBream" в январе 2010 года. BlueBream распространяется на условиях Zope Общественная лицензия и, следовательно, бесплатное программное обеспечение.

Zope 2 зарекомендовал себя как полезный фреймворк для разработки веб-приложений, но его использование выявило некоторые недостатки. Чтобы назвать несколько, создание продуктов Zope 2 включает в себя копирование большого количества шаблонного кода - «магического» кода - который просто должен быть там, а встроенный интерфейс управления трудно изменить или заменить. Zope 3 был переписанным программным обеспечением, которое пытается устранить эти недостатки, сохраняя при этом преимущества Zope, которые привели к его популярности. BlueBream основан на компонентной архитектуре, которая позволяет легко смешивать программные компоненты различного происхождения, написанные на Python. Первоначально задумывавшаяся как замена Zope 2, архитектура компонентов Zope была перенесена в Zope 2, начиная с Zope 2.8. Многие платформы Zope, такие как Plone, проходят тот же тип поэтапного переписывания. Первая производственная версия нового программного обеспечения, Zope X3 3.0.0, была выпущена 6 ноября 2004 года.

История

Проект Zope 3 начался в феврале 2001 года как попытка разработать новая версия Zope как почти полностью переработанная, с целью сохранить успешные особенности Zope 2, пытаясь исправить некоторые из его недостатков. Целью было создать более удобную для разработчиков и гибкую платформу для программирования веб-приложений, чем Zope 2. Проект начался с разработки компонентной архитектуры, которая позволяет структурировать код в небольшие составные блоки с интуитивно понятными интерфейсами. Интерфейсы поддерживаются пакетом интерфейсов, чтобы обеспечить функциональность явно объявленных интерфейсов для языка Python. Первая производственная версия программного обеспечения, Zope X3, была выпущена 6 ноября 2004 г. В январе 2010 г. Zope 3 был переименован в BlueBream.

Technology

Целью проекта было помочь программистам использовать Zope для предоставления произвольных объектов Python в качестве объектов модели в сети без необходимости заставлять эти объекты выполнять определенные требования к поведению. В Zope 2 было много требований к поведению, позволяющих объектам участвовать в структуре, что привело к появлению большого количества базовых классов mixin и специальных атрибутов. BlueBream использует архитектуру модель / представление, отделяя код представления от кода проблемной области. Представления и модели связаны друг с другом архитектурой компонентов.

Библиотеки, лежащие в основе BlueBream, превратились в набор полезных библиотек для разработки веб-приложений, а не в один монолитный сервер приложений. BlueBream включает отдельные пакеты для интерфейсов, компонентной архитектуры, HTTP-сервера, издателя, базы данных объектов Zope (ZODB), шаблонов страниц Zope, I18N, политики безопасности и т. Д. Компонентная архитектура используется для их склеивания. Архитектура компонента настраивается с использованием ZCML (язык разметки конфигурации Zope), языка файлов конфигурации на основе XML.

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

BlueBream считается стабильной структурой, используемой в производственных проектах по всему миру, в первую очередь Launchpad.

Zope Toolkit

В результате разработки Zope 3 / BlueBream появились Сейчас многие независимые пакеты Python используются и разрабатываются как часть BlueBream, и, хотя многие из них можно использовать за пределами BlueBream, многие - нет. Проект Zope Toolkit (ZTK) был начат, чтобы прояснить, какие пакеты можно использовать за пределами BlueBream, и улучшить возможность повторного использования пакетов. Таким образом, Zope Toolkit является основой для фреймворков Zope. Zope 2.12 - это первый выпуск веб-фреймворка, основанного на Zope Toolkit, а для Grok и BlueBream были установлены выпуски на основе ZTK в течение 2010 года.

Grok

В 2006 году проект Grok был запущен рядом разработчиков Zope 3, которые хотели сделать технологию Zope 3 более гибкой в ​​использовании и более доступной для новичков. С тех пор Grok регулярно выпускает релизы, и его основная технология (Martian, grokcore.component) также находит применение в других проектах, основанных на Zope 3 и Zope 2.

Zope 4
Zope
Разработчик (и) Zope Corporation
Предварительный выпуск 4.0b5 / 18 мая 2018 г.; 2 года назад (18.05.2018)
Написано наPython
Операционная система Кросс-платформенная
Тип Веб сервер приложений
Лицензия Общественная лицензия Zope
Веб-сайтwww.zope.org Измените это в Викиданных

В конце 2017 года началась разработка Zope 4. Zope 4 является преемником Zope 2.13, внося много изменений, которые не являются обратными совместимы с Zope 2.

Шаблоны страниц Zope

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

Однако эти шаблоны страниц не предназначены для отображения как есть. Вместо этого они помечены дополнительными элементами и атрибутами в специальных пространствах имен XML (см. Ниже). Эта дополнительная информация используется для описания того, как в конечном итоге должен обрабатываться шаблон страницы.

Вот несколько основных примеров. Чтобы условно включить определенный элемент, например элемент div, просто добавьте к элементу атрибут tal: conditionследующим образом:

...

Для управления тем, что появляется внутри элемента используйте атрибут tal: contentследующим образом:

Zope - Zope

...

Наконец, чтобы ввести или заменить значения атрибутов, используйте атрибут tal: attributesкак ниже. Вы можете использовать Python для изменения href во время выполнения.

... 

Это очень беглое объяснение шаблонов страниц Zope. Поведение шаблонов страниц Zope почти полностью описывается языком шаблонов, зафиксированным в спецификациях TAL, TALES и METAL:

  • Template Attribute Language (TAL),
  • Синтаксис выражения языка атрибутов шаблона (TALES ),
  • Язык атрибутов шаблона расширения макросов (METAL ).
Известное программное обеспечение, использующее Zope

SchoolTool - это открытая информационная система для учащихся который использует Zope.

См. также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
В Викиучебнике есть книга по теме: Zope
Последняя правка сделана 2021-06-23 11:23:14
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте