แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒแž”แžŽแŸ’แžแžถแž‰ Django 3.0

แž”แžถแž“แž€แžพแžแžกแžพแž„ แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒแž‚แŸแž แž‘แŸ†แž–แŸแžš Django แŸฃ.แŸข.แŸงแžŸแžšแžŸแŸแžšแž‡แžถแž—แžถแžŸแžถ Python แž“แžทแž„แžšแž…แž“แžถแžกแžพแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž„แŸ’แž€แžพแžแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸแž แž‘แŸ†แž–แŸแžšแŸ” แžŸแžถแžแžถ Django 3.0 แžแŸ’แžšแžผแžœแž”แžถแž“แž…แžถแžแŸ‹แžแŸ’แž“แžถแž€แŸ‹แžแžถแž‡แžถแž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแž’แž˜แŸ’แž˜แžแžถ แž“แžทแž„แž†แž“แŸ’แž‘แŸˆ แž‘แž‘แžฝแž›แž”แžถแž“ แž’แŸ’แžœแžพแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แž—แžถแž–แžšแž แžผแžแžŠแž›แŸ‹แžแŸ‚แž˜แŸแžŸแžถ แž†แŸ’แž“แžถแŸ† 2021แŸ” แžŸแžถแžแžถ LTS 2.22 แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แžถแŸ†แž‘แŸ’แžšแžšแž แžผแžแžŠแž›แŸ‹แžแŸ‚แž˜แŸแžŸแžถ 2022 แž“แžทแž„แžŸแžถแžแžถ 1.11 แžšแž แžผแžแžŠแž›แŸ‹แžแŸ‚แž˜แŸแžŸแžถ 2020แŸ” แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแžถแžแžถ 2.1 แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แžˆแž”แŸ‹แŸ”

แžŸแŸ„ แž€แžถแžšแž€แŸ‚แž›แž˜แŸ’แžข:

  • แž”แžถแž“แž•แŸ’แžแž›แŸ‹ แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž’แŸ’แžœแžพแž€แžถแžšแž“แŸ…แž€แŸ’แž“แžปแž„แžšแž”แŸ€แž”แžขแžŸแž˜แž€แžถแž›แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แŸ’แž“แžปแž„แž‘แž˜แŸ’แžšแž„แŸ‹แž“แŸƒแž€แž˜แŸ’แž˜แžœแžทแž’แžธ ASGI แŸ” แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธ แžขแŸแžŸแž‡แžธ (Asynchronous Server Gateway Interface) แžแŸ’แžšแžผแžœแž”แžถแž“แžšแž…แž“แžถแžกแžพแž„แž‡แžถแž€แžถแžšแž‡แŸ†แž“แžฝแžŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹ WSGI แžŠแŸ‚แž›แž˜แžถแž“แž”แŸ†แžŽแž„แžŸแž˜แŸ’แžšแž”แžŸแž˜แŸ’แžšแžฝแž›แžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž“แŸƒแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒ แž“แžทแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸ‚แž›แž‚แžถแŸ†แž‘แŸ’แžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžขแžŸแž˜แž€แžถแž›แŸ” แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ„แž™แž”แŸ’แžšแžพ WSGI แžแŸ’แžšแžผแžœแž”แžถแž“แžšแž€แŸ’แžŸแžถแž‘แžปแž€ แž แžพแž™แž€แžผแžŠแžŠแŸ‚แž›แž‘แžถแž€แŸ‹แž‘แž„แž“แžนแž„แž€แžถแžšแž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แžแŸ’แžšแžผแžœแž”แžถแž“แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แžแŸ‚แž“แŸ…แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž€แŸ’แž“แžปแž„แž”แžšแžทแžŸแŸ’แžแžถแž“แžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพ ASGI แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡แŸ”

    แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžšแž”แŸ€แž”แžขแžŸแž˜แž€แžถแž› แžšแž„แŸ’แžœแžทแž›แž‡แžปแŸ†แž–แŸ’แžšแžนแžแŸ’แžแžทแž€แžถแžšแžŽแŸแžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แž แžŠแŸ‚แž›แž€แŸ’แž“แžปแž„แž“แŸ„แŸ‡แž›แŸแžแž€แžผแžŠแž แŸ…แž‘แžผแžšแžŸแž–แŸ’แž‘แžŠแŸ‚แž›แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžแžถ "async unsafe" แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแž‰แŸ’แž‰แžถแžแž‘แŸแŸ” แžงแž‘แžถแž แžšแžŽแŸ แž€แžผแžŠแž“แŸแŸ‡แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž‡แžถแž˜แžฝแž™ DBMS (ORM) แžŠแŸ‚แž›แž˜แžทแž“แžขแžถแž…แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„แž”แžšแžทแž”แž‘แžขแžŸแž˜แž€แžถแž› (แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแž“แŸแŸ‡ แž€แŸ†แž แžปแžŸแž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜OnlyOnlyOperation แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž แžถแž‰) แž แžพแž™แž‚แžฝแžšแžแŸ‚แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแžถแž€แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แžแŸ’แžŸแŸ‚แžŸแŸ’แžšแžกแžถแž™แžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แž˜แžฝแž™แŸ”

  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž”แŸ’แžšแž—แŸแž‘ enum แžฏแž€แž‘แŸแžŸ TextChoices, IntegerChoices แž“แžทแž„แž‡แž˜แŸ’แžšแžพแžŸแžŠแŸ‚แž›แžขแžถแž…แž‡แžถ แž”แŸ’แžšแžพ แžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แžœแžถแž›แžขแžแŸ’แžแž”แž‘ แž“แžทแž„แž…แŸ†แž“แžฝแž“แž‚แžแŸ‹แž€แŸ’แž“แžปแž„แž‚แŸ†แžšแžผ แžงแž‘แžถแž แžšแžŽแŸ แž”แŸ’แžšแžŸแžทแž“แž”แžพแž…แžถแŸ†แž”แžถแž…แŸ‹แžแŸ’แžšแžผแžœแžšแž€แŸ’แžŸแžถแž‘แžปแž€แžŸแŸ†แžŽแžปแŸ†แž“แŸƒแžŸแŸ’แž›แžถแž€แžŠแŸ‚แž›แžขแžถแž…แžขแžถแž“แž”แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„แžœแžถแž› แž”แž€แž”แŸ’แžšแŸ‚แž‘แŸ…แž‡แžถแž›แž€แŸ’แžแžŽแŸˆแž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แŸ–

    แžแŸ’แž“แžถแž€แŸ‹ YearInSchool(models.TextChoices)แŸ–
    FRESHMAN = 'FR', _('Freshman')
    SOPHOMORE = 'SO', _('Sophomore')
    JUNIOR = 'JR', _(' Junior')
    SENIOR = 'SR', _('แž‡แžถแž“แŸ‹แžแŸ’แž–แžŸแŸ‹')
    GRADUATE = 'GR', _('แž”แž‰แŸ’แž…แž”แŸ‹แž€แžถแžšแžŸแžทแž€แŸ’แžŸแžถ')

  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžŸแž˜แžแŸ’แžแž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹แž€แž“แŸ’แžŸแŸ„แž˜แžŠแŸ‚แž›แž›แž‘แŸ’แž’แž•แž› แžœแžถแž›แž”แŸŠแžผแž›แžธแž“แžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„ QuerySet filters แžŠแŸ„แž™แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แžšแŸ€แž”แžšแžถแž”แŸ‹แž–แžฝแž€แžœแžถแž‡แžถแž˜แžปแž“แžŸแžทแž“ แž˜แžปแž“แž“แžนแž„แž”แŸ’แžšแžพแž–แžฝแž€แžœแžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžแŸ’แžšแž„แž…แŸ†แžŽแžถแžšแž–แž“แŸ’แž™แž›แŸ‹แŸ”
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแž‡แžถแž•แŸ’แž›แžผแžœแž€แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹ MariaDB 10.1 แž“แžทแž„แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžแŸ’แž˜แžธแŸ—แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แž‡แžผแž“แŸ”
  • แžแŸ’แž“แžถแž€แŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแžŸแž˜แŸ’แžšแžถแž”แŸ‹ PostgreSQL แž€แžถแžšแž”แžŠแžทแžŸแŸแž’ แžŠแžพแž˜แŸ’แž”แžธแž”แŸ’แžšแžพแž€แž˜แŸ’แžšแžทแžแžŠแŸ‚แž›แž•แŸ’แžขแŸ‚แž€แž›แžพแž€แžถแžšแž”แž‰แŸ’แž…แŸแž‰แž˜แžแžท แž˜แžทแž“แžšแžถแž”แŸ‹แž”แž‰แŸ’แž…แžผแž›;
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Python 3.5 แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แžˆแž”แŸ‹แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹