最後の2年間は、Djangoのバージョンはすぐに3.0までとなり、2.0はまだ長い時間はかからなかった、はるかに高速にアップグレードしてください。
公式ロードマップおよび時刻表を見てみましょう。
版数 | リリース日 | 更新停止 | 変更日を停止します |
---|---|---|---|
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データベースに排他制約を追加することができます。
フィルタ式
これで、最初の重合せずに、直接出力クエリセットフィルタリング動作にブール式を使用した後、濾過することができます。
モデルフィールド列挙オプション
新しい列挙クラスTextChoices
、IntegerChoices
および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までの値だけ小さい範囲を可能にすることを除いて、フィールドので、より安全であろう。AutoField
、BigAutoField
そしてSmallAutoField
それは継承されIntegerField
、BigIntegerField
そして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に注意してください!)