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 секілді технологиялар бар.

Наши рекомендации