ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘Π°ΠΉΡ‚ Π½Π° Django строится ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡ΡƒΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ruby on Rails). Один ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° — DRY. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ повторСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, особСнно… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠžΠ‘ΠšΠžΠ’Π‘ΠšΠ˜Π™ ΠΠ’Π˜ΠΠ¦Π˜ΠžΠΠΠ«Π™ ИНБВИВУВ

(Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ унивСрситСт) Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ № 3 «Π‘истСмы управлСния,

ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΡΠ»Π΅ΠΊΡ‚роэнСргСтика"

ΠšΠ°Ρ„Π΅Π΄Ρ€Π° № 308 «Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ»

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

«Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django«

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» студСнт Π³Ρ€ΡƒΠΏΠΏΡ‹ 03−618:

Вимошкин Б.А.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»:

Π“Ρ€ΠΈΠ΄ΠΈΠ½ А.Н.

Москва, 2014

Django — свободный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ шаблон проСктирования MVC. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ поддСрТиваСтся ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Django Software Foundation.

Π‘Π°ΠΉΡ‚ Π½Π° Django строится ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡ΡƒΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ruby on Rails). Один ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° — DRY. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ повторСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, особСнно Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… со ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠΌ слоёв абстрагирования.

Π’Π°ΠΊΠΆΠ΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ URL Π² Django ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ явно ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΡΡ‚ся автоматичСски ΠΈΠ· ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Django ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнный ORM, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ модСль Π΄Π°Π½Π½Ρ‹Ρ… описываСтся классами Python, ΠΈ ΠΏΠΎ Π½Π΅ΠΉ гСнСрируСтся схСма Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Django прСдставляСт собой Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Он Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ· Web-сайта ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ½Π»Π°ΠΉΠ½-Π³Π°Π·Π΅Ρ‚Ρ‹ ΠΈ Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ ΠΊΠ°ΠΊ систСма с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π² ΠΈΡŽΠ»Π΅ 2005 Π³ΠΎΠ΄Π°. Π“Π»Π°Π²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Django ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

? ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-рСляционноС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (object-relational mapping) для создания ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ;

? Π‘Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½Ρ‹ΠΉ интСрфСйс администратора, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданный для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ;

? Π­Π»Π΅Π³Π°Π½Ρ‚Π½ΠΎ спроСктированный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ адрСсования (URL);

? Π―Π·Ρ‹ΠΊ шаблонов, для Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ²;

? БистСма ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ;

Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ИспользованиС

Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚Π°ΠΊΠΈΡ… ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΈ ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹Ρ… сайтах, ΠΊΠ°ΠΊ Instagram, Disqus, Mozilla The Washington Times, Pinterest ΠΈ Π΄Ρ€.

Π’Π°ΠΊΠΆΠ΅ Django ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Graphite — систСма построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, FreeNAS — свободная рСализация систСмы хранСния ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Π΄Ρ€

АрхитСктура

АрхитСктура Django ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° «ΠœΠΎΠ΄Π΅Π»ΡŒ-ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅-ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€» (MVC). ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ классичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ MVC ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ соотвСтствуСт ΡƒΡ€ΠΎΠ²Π½ΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Django называСтся ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ (Π°Π½Π³Π». View), Π° ΠΏΡ€Π΅Π·Π΅Π½Ρ‚ационная Π»ΠΎΠ³ΠΈΠΊΠ° ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ рСализуСтся Π² Django ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π¨Π°Π±Π»ΠΎΠ½ΠΎΠ² (Π°Π½Π³Π». Template). Из-Π·Π° этого ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Django часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «ΠœΠΎΠ΄Π΅Π»ΡŒ-Π¨Π°Π±Π»ΠΎΠ½-ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅» (MTV).

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Django, ΠΊΠ°ΠΊ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ новостных рСсурсов, достаточно сильно ΠΎΡ‚Ρ€Π°Π·ΠΈΠ»Π°ΡΡŒ Π½Π° Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅: ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт ряд срСдств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π² Π±Ρ‹ΡΡ‚Ρ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-сайтов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π°. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ Ρ‚рСбуСтся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈ ΡΡ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ для административной части сайта, Π² Django Π΅ΡΡ‚ΡŒ встроСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния содСрТимым, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π»ΡŽΠ±ΠΎΠΉ сайт, сдСланный Π½Π° Django, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сразу нСсколькими сайтами Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС. АдминистративноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ наполнСния сайта, протоколируя всС ΡΠΎΠ²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹Π΅ дСйствия, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт интСрфСйс для управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ.

Django-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

1. МодСль Π΄Π°Π½Π½Ρ‹Ρ…: Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСрдцСвиной любого соврСмСнного Web-прилоТСния. МодСль — ваТнСйшая Ρ‡Π°ΡΡ‚ΡŒ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ постоянно обращаСтся ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ любом запросС ΠΈΠ· Π»ΡŽΠ±ΠΎΠΉ сСссии. Π›ΡŽΠ±Π°Ρ модСль являСтся стандартным Python классом. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°ΠΏΠΏΠ΅Ρ€ (ORM) обСспСчиваСт Ρ‚Π°ΠΊΠΈΠΌ классам доступ нСпосрСдствСнно ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ORM, программисту ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ запросы нСпосрСдствСнно Π½Π° SQL. МодСль обСспСчиваСт ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ доступа ΠΊ ΡΠ»ΠΎΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, инкапсулируСт бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ. МодСль Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ прилоТСния. Π”Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ этом Web-сСрвСр.

2. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ (view): Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² Ρ‚ΠΎΠΌ числС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ запросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²Ρ‹Π΄Π°ΡŽΡ‚ контСкст Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π΅Π³ΠΎ Ρ€ΠΎΠ»ΠΈ. View — это обычная функция, которая вызываСтся Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π·Π°ΠΏΡ€ΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ адрСса (URL) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ контСкст.

3. Π¨Π°Π±Π»ΠΎΠ½Ρ‹: ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠΎΠΉ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ…. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ свой собствСнный простой мСтаязык ΠΈ ΡΠ²Π»ΡΡŽΡ‚ся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… срСдств Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½.

4. URL: ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ внСшнСго доступа ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚авлСниям (view). ВстроСнныС Π² URL рСгулярныС выраТСния Π΄Π΅Π»Π°ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ достаточно Π³ΠΈΠ±ΠΊΠΈΠΌ. ΠŸΡ€ΠΈ этом ΠΎΠ΄Π½ΠΎ прСдставлСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сконфигурировано ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌ ΡƒΡ€Π»Π°ΠΌ, прСдоставляя доступ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ прилоТСниям. Π—Π΄Π΅ΡΡŒ поддСрТиваСтся философия Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ: URL становятся самодостаточными ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΆΠΈΡ‚ΡŒ нСзависимо ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚авлСния.

Π’ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠ² Django Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ прилоТСния для систСмы ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², синдикации RSS ΠΈ Atom, «ΡΡ‚атичСских страниц» (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±Π΅Π· нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авлСния), пСрСнаправлСния URL ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

ВозмоТности

НСкоторыС возмоТности Django:

? ORM, API доступа ΠΊ Π‘Π” с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ;

? ВстроСнный интСрфСйс администратора, с ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°ΠΌΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ языки;

? ДиспСтчСр URL Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ;

? Π Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠ°Ρ систСма шаблонов с Ρ‚Π΅Π³Π°ΠΌΠΈ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ;

? БистСма ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ;

? Π˜Π½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ;

? ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠ°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ Django-сайты;

? «generic views» — ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²;

? Авторизация ΠΈ Π°ΡƒΡ‚Снтификация, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ: LDAP, OpenID ΠΈ ΠΏΡ€ΠΎΡ‡.;

? БистСма Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² («middleware») для построСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² запросов, ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Π΅ Π² Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠ² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, сТатия, Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ URL ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… сСссий;

? Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ (наслСдованиС, построСниС Ρ„ΠΎΡ€ΠΌ ΠΏΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π‘Π”);

? ВстроСнная автоматичСская докумСнтация ΠΏΠΎ Ρ‚Π΅Π³Π°ΠΌ шаблонов ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, доступная Ρ‡Π΅Ρ€Π΅Π· административноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;

НСкоторыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ собой связаны слабо, поэтому ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ достаточно просто Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅. НапримСр, вмСсто встроСнных шаблонов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Mako (Π°Π½Π³Π».) ΠΈΠ»ΠΈ Jinja.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ ряд ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ORM) довольно слоТно.

? Π”ΠΆΠ΅Ρ„Ρ„ Π€ΠΎΡ€ΡΡŒΠ΅, Django. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python.

? http://ru.wikipedia.org/wiki/Django

? http://djbook.ru/

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ