Zope жне оны обьектілі моделі

Zope мынадай ммкіндіктерді амтиды:

· Веб-сервер. Zope веб-серверлермен CGI арылы жмыс істей алады немесе зіні кірістірілген веб-серверін (ZServer) олдану арылы.

· ндіруші ортасы веб-осымша сияты орындалан. Zope веб-интерфейс арылы веб-осымшаларын руа ммкіндік береді.

· Сценарилерді олдау. Zope бірнеше сценарий тілдерін олдайды: Python, Perl жне зіні DTML (Document Template Markup Language, жат шаблонын табалау тілі).

· Обьектілірді деректер оры. Zope з жмысында арнайы деректер орында саталатын (ZODB) траты обьектілерді олданады. Осы деректер орын басару шін арапайым интерфейс бар.

· Реляциялы деректер орымен бірігу. Zope з обьектілерін жне баса мліметтерді реляциялы ДБЖ-нде сатай алады: Oracle, PostgreSQL, MySQL, Sybase жне т.б.

Zope ндірушілері WWW негізінеде жатан обьектілік моделден шыты, URI бойынша жаттарды жктемелеуді обьектіген жіберілген хабармен салыстыруа болатын. Zope обьектілері, андайда бір рлі бар, олданушылар шін саясатты олжетімділікке туелді, папкалар (folders) бойынша ажыратылан. Обьект ретінде жаттар, суреттер, мультимедиа-файлдары, деректер оры адаптерлері жне т.б.

Zope жаттарын DTML тілінде жазуа болады – HTML синтаксисімен толытыру, SSI (Server-Side Include) сияты мндерді осу шін. Мысалы, айнымалыны жат атымен ою шін олдануа болады:

<!- #var document_title ->

Ескере кететіні, Zope обьектілері здеріні атрибуттары, жне де кбінесе Python тілінде жазылан дістері болады. Айнымалыларда олданушылармен берілген мндері сияты, сонымен атар баса мліметтер кздері (мысалы, деректер базасынан SELECT функциясын орындау арылы) секілді шыуы ммкін.

азіргі тада Zope жатын сипаттау шін кбінесе, з кезегінде TAL-ды пайдаланылатын, ZPT (Zope Page Templates, Zope бетіні шаблондары) олданылады. Ол жат шаблонымен сипатталан жаттар элементін ауыстыруа, айталауа немесе ткізіп жіберуге ммкіндік береді. TAL тіліні “операторлары” TAL кеістігі атындаы XML-атрибуттары болып табылады. Кеістік аттары бгінде келесі идентификатормен сипатталады:

xmlns:tal=”http://xml.zope.org/namespaces/tal”

TAL операторыны аты жне мні болады (аттармен жне атрибуттар мнімен есептелінеді). Мнні ішінде синтаксисі TALES (Template Attribute Language Expression Syntax, TAL мніні синтаксисі) тілімен сипатталан, TAL-мні жазылан.

Осылайша, ZPT, TAL атрибуттарын тсіндіре отырып, мазмн шаблондарын толтырады. Мысалы, Zope жат атын ою шін (тег TITLE), шаблон келесідей кода ие болады:

<title tal:content="here/title">Doc Title</title>

Айта кететіні, келтірілген код HTML кодына келе береді, яни веб-дизайнер проектті кез келген жмыс уаытында HTML-редакторында шаблондарын згерте алады (tal кеістік атауындаы белгісіз атирбуттарды сатаан кезде ана). Бл мысалда here/title – TALES рнегі болып табылады. Doc Title мтіні веб-дизайнерді бадаршысы ызметін атарады жне here/title рнегіні мнімен ауыстырылады, яни Zope жатыны title асиеті алынады.

Ескерту:

Zope-та обьекттер асиетке ие. асиеттер жиынтыы обьект тріне байланысты, біра жеке тртіп бойынша зартылуы ммкін. Id асиеті р кезде бар, title асиеті детте крсетіледі. Нерлым крделі мысал ретінде, шаблондар ішіндегі йымдар айталауын арастыруа болады (Zope-та бл мысалды сынап кру шін Page Template обьектін осу керек):

<ul>

<li tal:define="s modules/string"

tal:repeat="el python:s.digits">

<a href="DUMMY"

tal:attributes="href string:/digit/$el"

tal:content="el">SELECTION</a>

</li>

</ul>

Бл шаблон келесідей нтижеге ие:

<ul>

<li><a href="/digit/0">0</a></li>

<li><a href="/digit/1">1</a></li>

<li><a href="/digit/2">2</a></li>

<li><a href="/digit/3">3</a></li>

<li><a href="/digit/4">4</a></li>

<li><a href="/digit/5">5</a></li>

<li><a href="/digit/6">6</a></li>

<li><a href="/digit/7">7</a></li>

<li><a href="/digit/8">8</a></li>

<li><a href="/digit/9">9</a></li>

</ul>

Бнда екі негізгі стке назар аудару ажет:

· Шаблонда Python рнегін (бл мысалда s айнымалысы Python модулі секілді аныталан )жне string.digits жолында итерациялар тетін el цикіліні айнымалы-санауышын олдануа болады.

· TAL кмегімен тек ана элемент мазмнын ана емес, сонымен атар тег атрибутында (бл мысалда href атрибуты олданылан) беруге болады.

Толыыра жаттама бойынша білуге болады. Тек, итерация трлі деректер кздері болатынын байау керек: аындаы папкаларды мазмны, деректер базасынан, немесе, мысалда келтірілгендей, Python обьектісі бойынша.

Zope динамкалы веб-сайтты жобалауда, кодты е жоары айта пайдалануына жету шін, "кбейткiштер"жне "жаша" орналасуа ммкіндік береді.

Объекттер арасында араатынастарды растыруа бірегей тсіл кмектеседі: (acquisition) алыну.

Кейбір обьектілер (жат, сурет, сценарий, деректер орына осылу жне т.б.) Example папкасында орналасан болсын. Енді осы папкадаа обьектілер кез келген тменде жатан папкалардаы аттары бойынша олжетімді. Тіпті ауіпсіздік саясатыда тбіріне жаын тере орналасан папкадан папкаа алынады. Алысу Zope-ты те маызды тжырымдамасы болып табылады, Zope тсінбей сауатты олдану иын, жне керісінше, оны, деудегі обьектілерді айта олдана отырып, тсіну кшті жне уаытты немдеуге ммкіндік береді.

Е ызытысы, сондай-а параллель папкаларданда обьектілерді алмастыруа болады. Мысалы, Example папкасыны жанында керекті обьект (оны атауы note) орналасан Zigzag папкасы орналасан болсын. Сонымен атар Example папкасында бадарламаушыа ішінде note шаырылатын index_html обьектісі ызытырады. арапайым index_html обьектісіне жол URI бойынша мына сияты http://zopeserver/Example/ болады. Ал егер Zigzag-таы note (жне Example папкасында ол жо) олдану керек болса, онда URI: http://zopeserver/Zigzag/Example/ болады. Осылайша, Zope сілтеу жолы дстрлі жолдан ерекшеленеді, айталы, Unix-те: жолда осы папкалардан обьектілерді алмастыруа ммкіндік беретін, параллельді папкалар арылы “иректер” болуы ммкін. Осылайша, бір немесе бірнеше туелсіз аспектілерді біріктіре отырып наты бетті жасауа болады.

Орытынды

Бл дрісте веб-осымшаларында Python-ды олдануды трлі кзарастары арастырылды. Веб-осымшаларын жзеге асыруды е арапайым жолы - CGI-сценарийін олдану. Крделірегі болып веб-сервер шін арнайы модулдерді олдану болып табылады. Соында, веб-осымшаларын руа ммкіндік беретін мамандандырылан сервистерін сынатын Zope секілді технологиялар бар.