バージョンアップ情報
Django情報
Djangoとは
Django(ジャンゴ)はPythonで実装されたWebアプリケーションのフレームワークです。複雑なセットアップ手順などが必要無く、簡単かつ迅速に開発が始められる一方で、独自のテンプレートエンジンやO/RマッパーなどのWebアプリケーションの実装に必要な機能が一通り揃っています。
このため大規模なWebアプリケーションの開発にも向いており、InstagramやBitbucketなど多くの有名なサイトでの採用実績があります。
Djangoの主な目的は複雑なデータベース駆動型のWebサイトの開発を容易にすることです。このフレームワークはコンポーネントの再利用性と機能追加の容易さ、コードの削減、疎結合、迅速な開発、そしてDRY(don't repeat yourself)の原則などに重点を置いています。
Djangoは「モデル - テンプレート - ビュー(MTV)」というアーキテクチャパターンを採用しています。これは「モデル - ビュー - コントローラ(MVC)」と似ていますが、ユーザに表示するデータの集まりを「ビュー」、その見せ方(プレゼンテーション)を「テンプレート」としているところに特徴があります。
DjangoはDBのテーブルに対応した作成したモデルを通じてデータの追加、参照、更新、削除することができ、そのための管理画面を自動的に生成することもできます。
Djangoの開発にはPyCharmなどのDjangoをサポートした高機能なIDEを使うことができます。これらはソースコードの変更を即座に反映、確認できるため、開発生産性の向上に寄与します。
DjangoにはLTS(Long-Term Support)と非LTSという2つのサポートポリシーがあり、各バージョンにはそのいずれかが適用されます。LTS版ではリリース後3年間、セキュリティ修正と重大なバグ修正が提供されます。一方、非LTS版では次バージョンリリース後8ヶ月までがサポート期間となります。
ユーザはプロジェクトの要件に応じて適切なバージョンを選択することができますが、その後のセキュリティ維持のためには定期的なアップグレードをすることが推奨されます。サポートポリシーの詳細は以下で確認できます。
(参考)https://www.djangoproject.com/download/#supported-versions
Djangoは非営利団体として設立された独立組織、Django Software Foundation(DSF)によって開発が進められています。
主な特徴
-
バッテリー同梱(Batteries-included)
- 認証・ORM・テンプレートエンジン・管理サイトなど開発必須機能を標準搭載
- 外部ライブラリへの依存度が最小
-
MTVアーキテクチャ
- モデル(Model)- テンプレート(Template)- ビュー(View)の分離設計
- ビューロジックをテンプレートから完全に分離
-
非同期処理対応
- Django 3.1以降で非同期ビュー(async views)をサポート
- 非同期ORM(Django 4.1以降)による高パフォーマンス
-
クラスベースビュー
-
汎用ビュー/クラスベースビューで定型処理を再利用可能
例: CreateView, ListView, UpdateView, DeleteView
-
汎用ビュー/クラスベースビューで定型処理を再利用可能
-
自動管理サイト生成
- モデル定義からCRUD操作可能な管理サイトを自動生成
- カスタマイズ用のadmin.pyを提供
-
セキュリティベストプラクティス
- SQLインジェクション/CSRF/XSSなどを自動で防御
- パスワードハッシュ標準実装
代表的な採用事例
Instagram(初期開発)
バックエンドシステムの一部でDjangoを採用
NASAプロジェクト
科学データ公開サイトでDjangoを採用
Spotify(一部機能)
バックエンドのマイクロサービスの一部でDjangoを採用
類似プロダクト
Pythonで実装されたWebアプリケーションのフレームワークとして以下が挙げられます。
-
Flask
- FastAPI
- Tornado
- Starlette
- Pyramid
動作環境
DjangoはWindows/macOS/Linuxなど主要OSに対応しており、データベースはPostgreSQL、MariaDB/MySQL、SQLite、Oracle Databaseを公式サポートしています。
DjangoとPythonのバージョンに関する対応関係は以下のとおりです。
|
Djangoバージョン |
Pythonバージョン |
||||||
|---|---|---|---|---|---|---|---|
|
空白 |
3.8 |
3.9 |
3.10 |
3.11 |
3.12 |
3.13 |
3.14 |
|
6.1 |
× |
× |
× |
× |
◯ |
◯ |
◯ |
|
6.0 |
× |
× |
× |
× |
◯ |
◯ |
× |
|
5.2(LTS) |
× |
× |
◯ |
◯ |
◯ |
◯ |
× |
|
5.1 |
× |
× |
◯ |
◯ |
◯ |
◯(5.1.3以降) |
× |
|
5.0 |
× |
× |
◯ |
◯ |
◯ |
× |
× |
|
4.2 |
◯ |
◯ |
◯ |
◯ |
◯ |
× |
|
|
(LTS) |
(4.2.8以降) |
||||||
Djangoのライセンス
Djangoのライセンスは3条項BSD(BSD-3-Clause)です。
また、開発に貢献するコントリビュータに対してはこれと別にコントリビュータライセンスへの同意を求めています(Contributor License Agreement, CLA)。これはDjango Software Foundationがコントリビュータによる成果物をBSDライセンスの下で適切に再配布する権利を確保することを目的としています。
製品ダウンロード
参考情報
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
WordPress
ワードプレス。ブログ機能とSEO対策に強いといわれるphpベースのコンテンツマネジメントシステム(CMS)です。
-
Ruby on Rails
ルビーオンレイルズ。Rubyで書かれているオープンソースのWebアプリケーション開発フレームワークです。
-
Joomla!
ジュームラ。高い拡張性と使いやすさで世界的な人気を誇るコンテンツマネジメントシステムです。

