Djangoの3.0リリースでは、非同期機能をサポートするようになりました

Djangoの3.0リリースでは、このバージョンでは、非同期機能をサポートするために開始されなければならない最も顕著なそのうちのいくつかの新機能をもたらします。

以前、我々は報告し、草案は、することを提案しているDjangoは非同期をサポートしますHTTPミドルウェアおよびORMを見るために集まった、開発者は、Pythonの同期のためのサポートを維持しながら、ジャンゴでの非同期のサポートを追加したい、と完全な下位互換性です。

ビジョンは、最終的に、などのセッション、認証、ORMとハンドラを含むジャンゴの遮断部のほとんどを置き換えます、非同期のネイティブサポート同期APIは、そのうちのいくつかは、最終的に同期ラッパーネイティブ非同期コードに変換されます、存在し続けると、完全にサポートされています。

ASGI Djangoのモデルは、非同期処理層が同期サーバと互換性があるように、元のWSGIモデルは、各Djangoの単一イベントループを呼び出す周りに実行され、非同期のネイティブアプリケーションとして実行されます。

この変換処理では、各プロパティは、以下の3つの実装段階を受けます。

  • 同期専用の、唯一の現在の状況である、同期をサポート
  • 同期ネイティブ、ネイティブ同期、非同期のラッパーとの間
  • 同期ベルトラッパに非同期ネイティブ、ネイティブ非同期

Djangoは徐々に非同期機能を持つようにASGIを実行しているDjangoの3.0スタートは、アプリケーションのサポートを提供しています。非同期のイベントループを認知し、「非同期安全でない」のコード(例えば、オペレーティングORM)としてマークされた非同期呼び出しからコンテキストを防ぐことができますこの変更を行った後、Djangoは今、以前に使用している場合、開発者は、非同期コードで、あなたかもしれませんそれがトリガされます。あなたはSynchronousOnlyOperationエラーが表示された場合は、同期サブスレッドにコードとデータベース操作を二重にチェックすることができます。

他の態様、Djangoは今MariaDB 10.1以降をサポートしています。ExclusionConstraintクラスは、PostgreSQLの新しい排他制約を追加することができます;のBooleanField出力式は、今のノートの最初のコメントを有する、次いで、濾過せずに、クエリセットフィルタで直接使用することができます。カスタムタイプTextChoicesを列挙、IntegerChoices選択肢と方法についてField.choicesを定義するために使用することができます。

詳細はアップデートを見るいくつかのマイナーな変更は、もあります。

Django 3.0のサポートはPython 3.6,3.7および3.8は、Djangoの2.2.xのシリーズは、Python 3.5シリーズをサポートする最後のものであることに注意してください。公式はまた、従来のDjango 2.2のすべてのバージョンのサポートを放棄するサードパーティ製アプリケーションの作者を示唆しました。

おすすめ

転載: www.oschina.net/news/109798/django-3-0-released