ΡΠ΅Π»ΠΈΠ· Π½Π° ΡΠ΅Π±-ΡΡΠ΅ΠΉΠΌΡΡΡΠΊΠ° , Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»ΠΎΠ½ΡΡ Django 3.0 ΠΏΠΎΠΏΠ°Π΄Π° Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° Ρ Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΡΡΠΎΠΊ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΄ΠΎ Π°ΠΏΡΠΈΠ» 2021 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠ’Π‘ ΠΊΠ»ΠΎΠ½ΡΡ 2.22 ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄ΠΎ Π°ΠΏΡΠΈΠ» 2022 Π³ΠΎΠ΄ΠΈΠ½Π°, Π° ΠΊΠ»ΠΎΠ½ΡΡ 1.11 Π΄ΠΎ Π°ΠΏΡΠΈΠ» 2020 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½ 2.1 Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°.
ΠΠ»ΡΡΠΎΠ²ΠΈ :
- ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Π² Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ASGI ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Asynchronous Server Gateway Interface) Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΊΠ°ΡΠΎ Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π» Π½Π° WSGI, ΡΡΡ Π·Π° ΡΠ΅Π» Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ²ΡΡΠΈ, ΡΡΠ΅ΠΉΠΌΡΡΡΠΊΠΎΠ²Π΅ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Π² Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΡΡΠ΅Π· WSGI ΠΎΡΡΠ°Π²Π°, Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΡ Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠ΄ ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π² ΡΡΠ΅Π΄ΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ASGI.
ΠΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΈΠΊΡΠ» Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ (event loop), Π² ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΡΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄, ΠΎΠ·Π½Π°ΡΠ΅Π½ ΠΊΠ°ΡΠΎ 'async unsafe'. ΠΡΠΌ ΡΠ°ΠΊΡΠ² ΠΊΠΎΠ΄ ΡΠΏΠ°Π΄Π°Ρ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (ORM), ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ (Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π³ΡΠ΅ΡΠΊΠ° SynchronousOnlyOperation) ΠΈ ΡΠ»Π΅Π΄Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅Π½ΠΈ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΠΏΠΎΡΠΎΠΊ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈΠ·Π±ΠΈΡΠ°Π΅ΠΌΠΈ ΡΠΈΠΏΠΎΠ²Π΅ TextChoices, IntegerChoices ΠΈ Choices, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π² ΠΌΠΎΠ΄Π΅Π»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡ Π΄Π° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΏΠΎΠ»Π΅ΡΠ° Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΡΠ΅ΡΠΈΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π°Π½ΠΈ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠΈΠ·Π½Π°ΡΠΈ:
class YearInSchool(models.TextChoices):
FRESHMAN = 'FR', _('Freshman')
SOPHOMORE = 'SO', _('Sophomore')
JUNIOR = 'JR', _('Junior')
SENIOR = 'SR', _('Senior')
GRADUATE = 'GR', _('Graduate') - ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈ, ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΡΠΈ , Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²ΡΠ² ΡΠΈΠ»ΡΡΠΈΡΠ΅ Π½Π° QuerySet Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π°Π½Π½ΠΎΡΠΈΡΠ°Π½Π΅, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΠΈ.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ MariaDB 10.1 ΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ.
- ΠΠ° PostgreSQL Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠ»Π°Ρ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈ ;
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Python 3.5 Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
