การเปิดตัวกรอบงานเว็บ เขียนด้วย Python และออกแบบมาเพื่อการพัฒนาเว็บแอปพลิเคชัน สาขา Django 3.0 จัดว่าเป็นรุ่นสนับสนุนปกติและจะ อัปเดตจนถึงเดือนเมษายน 2021 LTS สาขา 2.22 จะได้รับการสนับสนุนจนถึงเดือนเมษายน 2022 และสาขา 1.11 จนถึงเดือนเมษายน 2020 การสนับสนุนสาขา 2.1 ถูกยกเลิกแล้ว
สำคัญ :
- รองรับการทำงานในโหมดอะซิงโครนัสพร้อมการดำเนินการในรูปแบบของแอปพลิเคชัน ASGI อินเตอร์เฟซซอฟต์แวร์ (Asynchronous Server Gateway Interface) ได้รับการออกแบบมาเพื่อทดแทน WSGI โดยมีวัตถุประสงค์เพื่ออำนวยความสะดวกในการโต้ตอบของเซิร์ฟเวอร์ เฟรมเวิร์ก และแอปพลิเคชันที่รองรับการทำงานแบบอะซิงโครนัส การรองรับการทำงานโดยใช้ WSGI ยังคงอยู่ และโค้ดที่เกี่ยวข้องกับอะซิงก์จะรวมไว้เมื่อทำงานในสภาพแวดล้อมที่ใช้ ASGI เท่านั้น
สำหรับโหมดอะซิงโครนัส จะมีการใช้ลูปเหตุการณ์แยกต่างหาก ซึ่งไม่อนุญาตให้ใช้รหัสการโทรที่ทำเครื่องหมายว่า “ไม่ปลอดภัยแบบอะซิงโครนัส” รหัสนี้รวมถึง ตัวอย่างเช่น การดำเนินการกับ DBMS (ORM) ซึ่งไม่สามารถใช้ในบริบทอะซิงโครนัส (ในกรณีนี้ ข้อผิดพลาด SynchronousOnlyOperation จะปรากฏขึ้น) และควรวางไว้ในเธรดซิงโครนัสที่แยกต่างหาก
- เพิ่มประเภท enum เฉพาะ TextChoices, IntegerChoices และ Choices ที่สามารถเป็นได้ เพื่อกำหนดฟิลด์ข้อความและจำนวนเต็มในโมเดล ตัวอย่างเช่น หากจำเป็นต้องจัดเก็บชุดป้ายกำกับที่อ่านได้ในฟิลด์ โดยแปลเป็นคุณลักษณะบางอย่าง:
คลาส YearInSchool (models.TextChoices):
เฟรชแมน = 'FR', _('น้องใหม่')
นักเรียนชั้นปีที่สอง = 'ดังนั้น', _('นักเรียนปีที่สอง')
จูเนียร์ = 'เจอาร์', _('จูเนียร์')
ผู้อาวุโส = 'SR', _('ผู้อาวุโส')
บัณฑิต = 'GR', _('บัณฑิต') - เพิ่มความสามารถในการระบุนิพจน์ที่ส่งออก โดยตรงในตัวกรอง QuerySet โดยไม่ต้องใส่คำอธิบายประกอบก่อนจึงจะใช้สำหรับการกรองคำอธิบายประกอบ
- มีการสนับสนุนอย่างเป็นทางการสำหรับ MariaDB 10.1 และรุ่นที่ใหม่กว่า
- คลาสนี้ถูกนำมาใช้กับ PostgreSQL แล้ว เพื่อใช้ข้อจำกัดตามนิพจน์ ;
- การสนับสนุน Python 3.5 ถูกยกเลิกแล้ว
ที่มา: opennet.ru
