Django 3.0的新功能


谷歌翻譯的,我修正並且添加了一些內容.湊合看吧.

MariaDB的支持

Django現在正式支持MariaDB 10.1和更高版本。有關更多詳細信息,請參見MariaDB注釋

ASGI支持

Django 3.0通過提供對作為ASGI應用程序運行的支持,開始了使Django具有完全異步功能的旅程

注:ASGI是WSGI的擴展,向下兼容WSGI,克服了WSGI的弱點,支持異步並發.有異步並發需求可以重新在生產環境下進行部署.

這是對我們現有的WSGI支持的補充。Django打算在可預見的將來為這兩者提供支持。但是,異步功能僅對在ASGI下運行的應用程序可用。

除非您想開始嘗試異步代碼,否則無需切換應用程序,但是如果您想了解更多信息,我們有 關於使用ASGI進行部署的文檔

請注意,作為此更改的副作用,Django現在知道異步事件循環,並將阻止您從異步上下文中調用標記為“async unsafe”的代碼(例如ORM操作)。如果您之前使用的是異步代碼中的Django,則操作不正確可能會觸發它。如果看到SynchronousOnlyOperation錯誤,仔細檢查代碼並將所有數據庫操作移至同步子線程中。

PostgreSQL的排斥約束

新增了 ExclusionConstraint類, 允許在PostgreSQL上添加排除約束。使用Meta.constraints選項將約束添加到model 

Filter 表達式

新增了BooleanField ,可以直接在QuerySet過濾器中使用輸出的表達式,而不必首先注釋,然后針對注釋進行過濾。

在 model field choices中使用枚舉

自定義枚舉類型TextChoicesIntegerChoicesChoices 現在作為一個的方式來定義Field.choices為文本和整數字段提供了類型TextChoices 和IntegerChoices類型。在 Choices類允許定義為其他具體的數據類型兼容的枚舉。這些自定義枚舉類型支持人類可讀的標簽,可以通過枚舉或其成員上的屬性來翻譯和訪問這些標簽。有關更多詳細信息和示例,請參見枚舉類型

次要功能

django.contrib.admin

  • 增加了對admin_order_field的 ModelAdmin.list_display屬性的支持
  • 新增的ModelAdmin.get_inlines()方法允許根據請求或模型實例指定內聯。
  • Select2庫從4.0.3版本升級到4.0.7。  # Select2 是一個非常好用的下拉框插件,支持很多功能。
  • jQuery從版本3.3.1升級到版本3.4.1。

django.contrib.auth

django.contrib.gis

django.contrib.postgres

django.contrib.sessions

django.contrib.syndication

緩存

文件存儲

表格

國際

記錄

  • 的新reporter_class參數 AdminEmailHandler允許提供一個 django.views.debug.ExceptionReporter子類,以自定義ADMINSDEBUGis 發送到站點的回溯文本False

管理命令

  • 選項允許在搜索要編譯的文件時忽略特定目錄compilemessages --ignore.po
  • showmigrations --list現在顯示的--verbosity是大於等於2的日期時間 
  • 在PostgreSQL上,dbshell現在支持客戶端TLS證書。
  • inspectdb現在,OneToOneField 當外鍵具有唯一或主鍵約束時,它會進行自省
  • --skip-checks選項將在運行命令之前跳過正在運行的系統檢查。
  •  選項現在存放在XZ檔案(支持模板)和LZMA檔案()。startapp --templatestartproject --template.tar.xz.txz.tar.lzma.tlz

型號

  • 新增哈希數據庫功能MD5, SHA1, SHA224, SHA256, SHA384,和 SHA512

  • 添加了Sign數據庫功能。

  • 數據庫功能的新is_dst 參數 Trunc確定了不存在和不明確的日期時間的處理方式。

  • connection.queries現在顯示PostgreSQL上的語句。COPY … TO

  • FilePathField現在接受的可調用對象path

  • 允許使用對稱的中間表作為自引用 ManyToManyField

  • name屬性CheckConstraint, UniqueConstraint和 Index現在支持應用標簽和類插值使用'%(app_label)s''%(class)s'占位符。

  • Field.descriptor_class屬性允許模型字段通過覆蓋其描述符來自定義get和set行為 

  • AvgSum現在支持distinct論點。

  • 添加了SmallAutoField,它的行為類似於“ AutoField例外”,只是它只允許某個值(取決於數據庫)下的值。1到的32767在Django支持的所有數據庫中都是安全的。

  • AutoField, BigAutoField以及 SmallAutoField現在從繼承 IntegerFieldBigIntegerFieldSmallIntegerField分別。系統檢查和驗證器現在也已正確繼承。

  • FileField.upload_to現在支持pathlib.Path

  • CheckConstraint 現在在MySQL 8.0.16+上受支持。

  • 這種新的allows_group_by_selected_pks_on_model()方法 django.db.backends.base.BaseDatabaseFeatures允許對子句進行優化, 使其僅需要選定模型的主鍵。默認情況下,僅PostgreSQL上的托管模型支持它。GROUP BY

    為非托管模型啟用僅主鍵優化,您必須對PostgreSQL數據庫引擎進行子類化,並根據需要覆蓋features類方法。有關示例,請參見子類化內置數據庫后端GROUP BYallows_group_by_selected_pks_on_model()

請求和響應

安全

測試

  • 新的測試Client參數 raise_request_exception允許控制是否應在測試中引發在請求期間引發的異常。該值默認True為向后兼容。如果是,False並且發生異常,則測試客戶端將返回500響應,其中包含屬性exc_info,一個元組提供發生的異常的信息。
  • 可以使用新選項通過測試名稱模式選擇要運行的測試和測試用例test -k
  • assertHTMLEqual()現在,由所使用的HTML比較 將將相同字符引用的文本,字符引用和實體引用視為等效。
  • Django測試運行器現在支持在支持的瀏覽器上進行硒測試的無頭模式。添加--headless選項以啟用此模式。
  • Django測試運行器現在支持--start-at--start-after選項,以從特定的頂級模塊開始運行測試。
  • Django測試運行器現在支持--pdb在每個錯誤或失敗時生成調試器選項。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM