3.0について紹介しますPyQヘッドラインid:hirokikyです。Django3.0がリリースされました!Django3.0で追加される機能、変更点についてご存知ですか?今回はDjango最新バージョンの、Django3.0について紹介します。すべての機能や変更を細かく紹介すると長くなるので、「Django3.0で大まかに何が変わったのか?」をご説明します。Changes(後方互換性のない変更)に十分注意してください。ASGI(非同期Webサーバー)対応Django3.0は非同期対応のWebサーバー(ASGIサーバー)で動作するようになりました。ASGIサーバーは非同期処理に対応したWebアプリケーションを動作させるための、Python製のWebサーバーです。Django3.0ではViewやMiddleware、Modelは非同期に対応していません。本格的な非同期対応は今後のリリースで実装される予定です。Django3.0リリース情報は公式ドキュメントのこちらのページに記載されていますdocs.djangoproject.com今後どうなるか今後、Djangoが非同期を完全にサポートすれば、たとえば以下のようなWebアプリケーションをDjangoでも作れると期待されています。WebSocketのような非同期・双方向のプロトコルに対応したアプリケーションデータベースアクセスでブロックしないアプリケーション現状では「Django3.0がASGI対応をした」という事実だけで、私たちが普段作るDjangoアプリケーション的に大きな変化はありません。これからの非同期対応に向けて準備を整えたというところでしょうか。今後のDjangoのリリースが楽しみです。Python2向けの機能削除Python2向けに提供されていた互換性用の機能がDjango3.0からは削除されています。Django2系からPython2のサポートはありませんが、過去から残されていたPython2向けの機能が削除されます。削除された機能のうち、以下の2つは比較的よく使われていた機能だと思います。なくなったことは感動的です。これはDjangoがPython3対応をするときにsixというライブラリーをDjango内部に取り込んだものです。外部ライブラリーとの依存を避けるために取られた方法ですが、あまり美しくないので、この機会になくなって良かったと思っています。(Python2対応しているDjango1.11も、2020年4月にサポート切れになります)。2020年でPython2のサポートが切れるというのもあって、また1つ大きな時代の変化を感じます。typesという機能が追加されました。まとめてキレイに書けるのが利点です。この機能がないDjango2以前は、以下のように値を書く必要がありました。choices=JOB_CHOICES)他にも数値や日付を値にしたり、便利に使えそうです。大きな機能ではありませんが、Djangoでのアプリ開発をよくする人には嬉しい機能ではないでしょうか。typesについては公式ドキュメントのこちらのページに記載されていますdocs.djangoproject.com他には?他にもMariaDBの正式対応や、PostgreSQL向けの便利な機能の追加、QuerySetの機能追加などがあります。気になる方は下記のリリースノートから変更点を見てみてください。docs.djangoproject.comDjango3.0にはいつ上げるべき?Django2.2までアップグレードしていて、頻繁にアップグレードできるプロジェクトであればDjango3.0にしても良いでしょう。すべて削除した状態にしてからアップグレードしましょう。LTSを待つのもありです。Django3系のLTであるDjango3.2は2021年の4月にリリース予定ですので、そこまではDjango2.2で待てます(Django2.2は2022年4月までのサポートです)。Django2系のプロジェクトでも、今のうちにDeprecationWarnigを取り除いておくと今後のアップグレードの時期にスムーズにいきそうですね。ロードマップはこちらをご覧ください。www.djangoproject.comまとめDjango3.0はDjango3系で初めてになる、記念すべきリリースです。Djangoで非同期処理が本格的にサポートされていくのはこれからですが、今後のDjangoに期待が高まるリリースです。開催も決まり、ますます盛り上がりを見せるDjangoです。3.0について紹介しますTweet関連記事2019-09-10ライブコーディング:Djangoを使ってECサイトを作ろうこんにちは。