AuthType Basic
AuthName "My page"
require validβuser
</Directory>
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΡΠΎ β Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΡΠΎΠ΅Π½Π° Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΡΡΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ (ΠΏΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ mod_python ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΎΠ½ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ):
PythonPostReadRequestHandler
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ.
PythonTransHandler
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ URI Π·Π°ΠΏΡΠΎΡΠ° (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈΠΌΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°).
PythonHeaderParserHandler
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»Π΅ΠΉ Π·Π°ΠΏΡΠΎΡΠ°.
PythonAccessHandler
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ IPβΠ°Π΄ΡΠ΅ΡΡ).
PythonAuthenHandler
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
PythonTypeHandler
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ/ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΈΠΏΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΡΠ·ΡΠΊΠ° ΠΈ Ρ.Π΄.
PythonFixupHandler
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ.
PythonHandler
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°ΠΏΡΠΎΡΠ°.
PythonInitHandler
PythonPostReadRequestHandler ΠΈΠ»ΠΈ PythonHeaderParserHandler Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ webβΡΠ΅ΡΠ²Π΅ΡΠ°.
PythonLogHandler
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΡΡ Π² Π»ΠΎΠ³ΠΈ.
PythonCleanupHandler
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ RequestβΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π΄Π°ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ (ΡΠ°ΠΊΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, PythonPostReadRequestHandler).
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ mod_python ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ webβΡΠ°ΠΉΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΡ webβΡΠ΅ΡΠ²Π΅ΡΠ° Apache ΡΠ΅ΡΠ΅Π· PythonβΡΡΠ΅Π½Π°ΡΠΈΠΈ.
Π‘ΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ WebβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΡΠ΅ΠΌ webβΡΠ΅ΡΠ²Π΅Ρ Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ Π½Π° Π½Π΅ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ CGIβΡΡΠ΅Π½Π°ΡΠΈΡΠΌΠΈ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ webβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ (CMS, Content Management System), ΡΠΈΡΡΠ΅ΠΌΡ webβΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ WWWβΠΏΠΎΡΡΠ°Π»ΠΎΠ². ΠΡΠΈΡΠ΅ΠΌ CMSβΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠ°ΠΊ webβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π»ΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±Π°Π·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ webβΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ CMSβΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ, Π²ΡΠ±ΠΈΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π½ΡΠΆΠ΄, ΡΡΠΎΠΈΡ ΡΡΠΎΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ.
Π―Π·ΡΠΊ Python, Ρ ΠΎΡΡ ΠΈ ΡΡΡΡΠΏΠ°Π΅Ρ PHP ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π½Π° Π½Π΅ΠΌ webβΡΠΈΡΡΠ΅ΠΌ, ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π°ΠΌΡΠΌ ΡΡΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° webβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Zope (ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡΡ Β«Π·ΠΎΠΏΒ») (ΡΠΌ. http://zope.org) (Z Object Publishing Environment, ΡΡΠ΅Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²). Zope ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ webβΡΠ΅ΡΠ²Π΅Ρ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ WebβΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Apache. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ Zope ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ webβΠΏΠΎΡΡΠ°Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Plone/Zope, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ webβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ Zope ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π€ΠΎΡΠΌΡ, Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΈ ΠΠΎΠ³ΠΈΠΊΡ Π΄ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, ΡΡΠΎ Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΈ Π»ΡΠ΄ΠΈ (ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΏΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ), Π€ΠΎΡΠΌΠΎΠΉ β Π΄ΡΡΠ³ΠΈΠ΅ (webβΠ΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΡ), Π° ΠΠΎΠ³ΠΈΠΊΠΎΠΉ β ΡΡΠ΅ΡΡΠΈ (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ). Π ΡΠ»ΡΡΠ°Π΅ Ρ Zope ΠΠΎΠ³ΠΈΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·ΡΠΊΠ° Python (ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, Perl), Π€ΠΎΡΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ webβΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°Ρ , Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ΅ΡΠ΅Π· WebβΡΠΎΡΠΌΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Zope.
Zope ΠΈ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ
Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠΉ Π»Π΅ΠΊΡΠΈΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊ Zope, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎΠΈΡ Π»ΠΈΡΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠ½ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ webβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎβΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Zope ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Zope Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
β’ WebβΡΠ΅ΡΠ²Π΅Ρ. Zope ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ WebβΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· CGI ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ WebβΡΠ΅ΡΠ²Π΅Ρ (ZServer).
β’ Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠ°ΠΊ WebβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Zope ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ WebβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· WebβΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
β’ ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². Zope ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ² ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²: Python, Perl ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ DTML (Document Template Markup Language, ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°).
β’ ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Zope ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (ZODB). ΠΠΌΠ΅Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ .
β’ ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . Zope ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π‘Π£ΠΠ: Oracle, PostgreSQL, MySQL, Sybase ΠΈ Ρ.ΠΏ.
Π ΡΡΠ΄Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Zope Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ ΠΈ Π½Π΅ΠΏΡΠΈΡΡΡΠΏΠ½ΡΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ Π½ΠΈΠΌ Β«Π½Π° ΡΡΒ», ΠΎΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Zope ΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ ΠΈΠ· Π»Π΅ΠΆΠ°ΡΠ΅ΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π΅ WWW ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎ URI ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ±ΡΠ΅ΠΊΡΡ Zope ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ°ΠΌ (folders), ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΠ»ΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°βΡΠ°ΠΉΠ»Ρ, Π°Π΄Π°ΠΏΡΠ΅ΡΡ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ Ρ.ΠΏ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ Zope ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ DTML β Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ HTML Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ SSI (ServerβSide Include). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
<!-- #var document_title -->
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ Zope ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ Π°ΡΡΠΈΠ±ΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Python. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊ ΠΈ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ±ΠΎΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SELECT).
Π‘Π΅ΠΉΡΠ°Ρ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Zope Π²ΡΠ΅ ΡΠ°ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ZPT (Zope Page Templates, ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΡΡΠ°Π½ΠΈΡ Zope), ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ TAL (Template Attribute Language, ΡΠ·ΡΠΊ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²). ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΡΡΡ, ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. Β«ΠΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈΒ» ΡΠ·ΡΠΊΠ° TAL ΡΠ²Π»ΡΡΡΡΡ XMLβΠ°ΡΡΠΈΠ±ΡΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ TAL. ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ:
xmlns:tal="http://xml.zope.org/namespaces/tal"
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ TAL ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΠ°). ΠΠ½ΡΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ TALβΠ²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ β TALES (Template Attribute Language Expression Syntax, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ TAL).
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ZPT Π½Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ TAL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Zope ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (ΡΠ΅Π³ TITLE), ΡΠ°Π±Π»ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
<title tal:content="here/title">Doc Title</title>
Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΠΉΠ΄Π΅Ρ Π·Π° ΠΊΠΎΠ΄ Π½Π° HTML, ΡΠΎ Π΅ΡΡΡ, WebβΠ΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π² HTMLβΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΡΠΎΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ tal). Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ here/title ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ TALES. Π’Π΅ΠΊΡΡ Doc Title ΡΠ»ΡΠΆΠΈΡ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠΌ Π΄Π»Ρ webβΠ΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ° ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ here/title, ΡΠΎ Π΅ΡΡΡ, Π±ΡΠ΄Π΅Ρ Π²Π·ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ title Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Zope.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:Π 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) ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡβΡΡΠ΅ΡΡΠΈΠΊ ΡΠΈΠΊΠ»Π° el, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅ string.digits.
β’ Ρ ΠΏΠΎΠΌΠΎΡΡΡ TAL ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½ΠΎ ΠΈ Π°ΡΡΠΈΠ±ΡΡΠ° ΡΠ΅Π³Π° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π°ΡΡΠΈΠ±ΡΡ href).
ΠΠ΅ΡΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΏΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π‘ΡΠΎΠΈΡ Π»ΠΈΡΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎ ΡΠ°ΠΌΡΠΌ ΡΠ°Π·Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌ Π΄Π°Π½Π½ΡΡ : ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠΈ, Π²ΡΠ±ΠΎΡΠΊΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ Python.