熱門Python網頁開發框架Django推出最新的4.1版本,這次主要更新包括加入非同步處理程式(Asynchronous Handler)以及非同步ORM介面(Object-Relational Mapping Interface),並且包含部分無法向後相容的更改。

非同步基於類別的View是Django 4.1的一大重點,除了之前同步方法處理程式之外,View的子類別現在可以定義非同步HTTP方法處理程式。在單個View類別中所有用戶定義的方法,View只能是同步或是非不同步的,當兩者混在一起則會產生異常。

ORM非同步介面QuerySet則提供在基於類別的View上,定義非同步處理程式的能力,QuerySet可用於所有資料存取操作,介面的命名參考同步操作,只是加入前綴a,像是acreate()或aget()。官方提到,在這個階段,底層資料庫的操作都仍然維持同步,接下來他們的工作會繼續將非同步支援下推至SQL編譯器中,並整合非同步資料庫驅動程式。

新的非同步查詢QuerySet介面封裝了必要的sync_to_async()操作,讓開發者可以隨著之後ORM的發展,擴展程式碼對非同步的支援。

Django 4.1有不少非向後相容的更改,影響範圍涵蓋一系列資料庫後端API,像是調整特定行為預設值,以反映大多數資料庫的行為等。Django 4.1支援的Python版本包括3.8、3.9、3.10,另外,Django 4.1將不再支援PostgreSQL 10,僅支援PostgreSQL 11或更高版本,而Django也不再支援MariaDB 10.2,用戶需要使用MariaDB 10.3或更高版本。

熱門新聞

Advertisement