非同期通信をサポートするために、前方Django3.0

最後の2年間は、Djangoのバージョンはすぐに3.0までとなり、2.0はまだ長い時間はかからなかった、はるかに高速にアップグレードしてください。

公式ロードマップおよび時刻表を見てみましょう。

1

版数 リリース日 更新停止 変更日を停止します
3.0 2019から12 2020から08 2021から04
3.1 2020から08 2021から04 2021から12
3.2 LTS 2021から04 2021から12 2024から04

当社は、2019年12月にリリース予定3.0は、2022年に4.0にアップグレードすることを見ることができますが、我々はまだ2.2昨日感じ。

これは、ユーザーの大半を与え、学習者が学習し、コストをアップグレードするだけでなく、Djangoの非常に健全な生態系を代表して、ユーザーは、着実に増加し、迅速な反復機能する圧力の一定量を持って、良い兆候がある、我々は積極的にすべき変化を受け入れる、背後に拒否。

次は、どのような新しいものと正確に3.0の新しい変化を見てみましょう。

Pythonの互換性

以下のバージョン3.6がサポートされなくなりました、だけ3.6,3.7,3.8以降をサポートしています。

(Djangoの戦略は、常に最新のDjangoに合わせてきた最新のpythonを使用してくださいました。)

ASGI

これが最大の変化であるとDjango3.0を強化します!

ASGIをサポートすることにより、もはや批判されている、彼らの最大の欠点に対処するために、全二重非同期通信能力を開始していないDjango3.0!(トルネードのサポーターは一日ではありません2日間この事を取ると言います)

サポートASGIは、既存のWSGIを置き換えるが、私たちは今、モデルを実行している2つのサーバーを持っていることを意味サプリメント、ではありません。

それだけでASGIベースのサーバー後に開始、それは非同期通信機能をサポートしていることに留意すべきです。ASGIモードでは、非同期および同期通信の両方をサポートします。(のみ同期通信モードをWSGI)

展開ASGIののDjangoの公式文書https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/は、についての学習の価値があります。

ASGIの導入も検討すべきいくつかのことをもたらした:Djangoは今、非同期のイベントループを監視し、非同期呼び出しからあなたを防ぐことは、コンテキストにマークされている异步不安全(これはORMを使用することができないと言っているわけではないことに注意してください)、このようなORM操作として、コードの。あなたが発生した場合はSynchronousOnlyOperation、エラーをしてくださいダブルチェックコードとすべてのデータベース操作は、サブスレッドの同期に移動しました。

MariaDB

MariaDB 10.1以降をサポートしています。

PostgreSQLの

モデル追加することでMeta.constraintsオプションを、あなたは、PostgreSQLデータベースに排他制約を追加することができます。

フィルタ式

これで、最初の重合せずに、直接出力クエリセットフィルタリング動作にブール式を使用した後、濾過することができます。

モデルフィールド列挙オプション

新しい列挙クラスTextChoicesIntegerChoicesおよびChoicesそれらはすべてあるField.choicesのサブクラス。あなたが持っていなかったことをCharField追加しchoicesたパラメータを、あなたが直接作成することができTextChoices、オブジェクトを。

小さな機能

以下は、(いくつかの珍しいことではない)いくつかのマイナーな変更です

django.contrib.admin

  • するために、ModelAdmin.list_display追加admin_order_fieldのサポートを
  • 新しいModelAdmin.get_inlines()方法は、要求を指定することができ、モデル・インスタンスに応じてinlineモード
  • 選択2データベースは、バージョン4.0.3から4.0.7へのアップグレード
  • jQueryのは、バージョン3.3.1から3.4.1にアップグレードしてください。

django.contrib.auth

  • PasswordResetConfirmViewあなたは、新しい追加することができますreset_url_tokenプロパティを

  • 新しいBaseBackendカスタムバックエンド認証を簡素化するためのクラス。
  • 新しいget_user_permissions()方法、従来の鏡像get_group_permissions()法。
  • HTMLページ、ウィジェットの電子メールをユーザー名とパスワードのフィールドが追加しautocomplete、より良いブラウザデバイスと対話する属性。
  • 実行する場合はcreatesuperuser、コマンドを使用すると、非対話型モードで適切なコマンドラインパラメータを提供しない場合、あなたは、環境変数やパスワード必須フィールドに返されます。
  • ManyToManyFieldあなたは今使用することができますREQUIRED_FIELDS
  • 新しいUserManager.with_perm()方法は、許可を指定したユーザーが返されます。
  • デフォルトのパスワードはPBKDF2繰り返し回数150,000から180,000に増加されるハッシュ。

django.contrib.sessions

新しいget_session_cookie_age()方法は、動的にセッションクッキーの有効期間を指定することができます。

モデル

  • 新しいデータベース・ハッシュ関数MD5、SHA1、SHA224、SHA256、SHA384、およびSHA512。

  • サインデータベース機能を追加します。

  • FilePathField今すぐ呼び出し可能オブジェクトを受け入れます

  • 自己参照ManyToManyFieldフィールドは、対称中間テーブルを可能に

  • AvgそしてSum凝集がサポートされるようになりましdistinctパラメータ、重複排除を。

  • 追加SmallAutoFieldのようなフィールドを、AutoFieldそれが例えば1から32767までの値だけ小さい範囲を可能にすることを除いて、フィールドので、より安全であろう。

  • AutoFieldBigAutoFieldそしてSmallAutoFieldそれは継承されIntegerFieldBigIntegerFieldそしてSmallIntegerField、検証者システムチェックので、それに応じて継承されています。

  • FileField.upload_to今すぐサポートpathlib.Path

  • CheckConstraint これは、MySQLの8.0.16+でサポートされています。

互換性Django3.0後方ではありません

(簡単な概要)

  • 次のPostgreSQL 9.5はサポートされなくなりました
  • 12.2次のOracleもはやサポート
  • 公式のPython 2の互換性関連のAPIを削除します。
  • :一部のセキュリティ設定は、より安全なデフォルト持ってX_FRAME_OPTIONS今のデフォルトを'DENY'SECURE_CONTENT_TYPE_NOSNIFFデフォルトでTrue
  • 次の1.2.0はサポートされなくなりましpywatchmanライブラリー

Django3.0は、いくつかの機能を破棄しました

django.utils.encoding.force_text()とsmart_text()

django.utilsやHTTP、翻訳、テキストやその他の関連コンテンツの一部。

Djangoの3.0削除された機能

次のメソッド、プロパティと設定が削除されます。

  • django.db.backends.postgresql_psycopg2モジュール
  • django.shortcuts.render_to_response() 方法
  • DEFAULT_CONTENT_TYPEセットアップ
  • HttpRequest.xreadlines() 方法
  • Field.from_db_value()そしてExpression.convert_value()方法
  • QuerySet.earliest()そして、キーワード引数latest()field_name

  • django.utils.http.cookie_date() 方法
  • staticfilesそして、admin_staticテンプレートタグライブラリ
  • django.contrib.staticfiles.templatetags.staticfiles.static() 方法

概要

私たちは、コアがDjango3.0が非同期通信であるASGIの変更をサポートし、他の軽微な変更は、基本的なユーザー体験が出てこない、一般的に、リリースノートから見ることができます。

非同期通信機能は、この外部ライブラリは、標準のコア機能の一つとして、公式のDjangoの中に含まジャンゴ-channleであると言われます。とにかく、HTML5用WebSocketは、直接通信とDjangoになります。Djangoのベースのチャットルームを達成するためにウェブ、ウェブQQ、ウェブページや他のマイクロチャンネルのリアルタイム通信アプリケーションは、シンプルになり、私たちは別れを告げることができポーリングの長さ。

(その他の関連するコンテンツとDjango最近の変化、また、最初の時間にリリースされる最新の教育ビデオに関連し、私の公式サイトのwww.liujiangblog.comに注意してください!)

おすすめ

転載: www.cnblogs.com/django-dev/p/11627118.html