Django(ジャンゴ)は、Pythonで実装されたWebアプリケーションフレームワーク。MVCデザインパターンに緩やかに従う。もともとはアメリカ合衆国カンザス州ローレンスにあるWorld Companyのために、ニュース系のサイトを管理する目的で開発され、2005年7月にBSD Licenseで公式にリリースされた。フレームワークはジプシー・スウィングのギタリストであるジャンゴ・ラインハルトにちなんで命名された。

Djangoの第一の目的は、複雑なデータベース主体のウェブサイトの構築を簡単にすることであり、コンポーネントの再利用性と'pluggability'、素早い開発、Don't repeat yourselfの原則に力点を置いている。ファイルやデータのモデルにいたるまで、Pythonが一貫して用いられている。Djangoはまた、動的に生成され、データモデルの定義を通じて完全に構成することができる、データベース管理CRUDインターフェイスをオプションで提供する。Python3系統にはDjango 1.5バージョンで実験的に対応し、Django 1.6より本格的に対応した。Python2系統への対応は、バージョン1.11(3年サポートのLTS、2020年4月まで)が最後となり、2.0でPython3.4以降、2.1でPython3.5以降にのみの対応となった。

Djangoを使用している有名なサイトには、PBS、Instagram、 MozillaDisqus、Bitbucket、Nextdoorなどがある。

Djangoのコンポーネント

Djangoフレームワークのコア部分はデータモデル(Pythonクラスとして定義される)と関係データベースとの間を仲介するO/Rマッパー、正規表現に基づくURLディスパッチャ、要求を処理するビューシステム、テンプレートシステムから構成される。

そのほか、下記のものがコアのフレームワークに含まれる:

  • 開発とテストのための軽量のスタンドアロンWebサーバ
  • HTMLフォームをデータベースに格納できる値に変換するフォームのシリアル化と検証システム
  • 複数のキャッシュ方法に対応したキャッシュフレームワーク
  • 要求を処理するさまざまな段階に挿入し、カスタムの処理を実行できるミドルウェアクラスのサポート
  • アプリケーションのコンポーネントがあらかじめ定義されたシグナルを用いてイベント通信できるようにする内部ディスパッチャシステム
  • 国際化の機構(Django自身のコンポーネントも多数の言語へ翻訳されている)
  • Django モデルのインスタンスをXMLおよびJSONに対して入出力可能なシリアル化機構
  • テンプレートエンジンの機能を拡張する機構

バンドルされるアプリケーション

Djangoの公式配布物は、"contrib"パッケージ内に多数のアプリケーションを含んでいる。

  • 拡張可能な認証機構
  • 動的な管理インターフェイス
  • RSSとAtom配信用のフィードを生成するツール
  • 柔軟なコメントシステム
  • Sitemapsを生成するツール
  • クロスサイトリクエストフォージェリ (CSRF) を防止するためのツール
  • TextileやMarkdownなどの軽量マークアップ言語の使用が可能なテンプレートライブラリ

サーバ構成

Djangoは、ウェブアプリケーションインタフェースとしてWSGIとASGIに対応しているため、それらに対応したウェブアプリケーションサーバを使って(必要に応じてNginxやApacheなどのWebサーバとも組み合わせて)動作させられる。WSGI/ASGIサーバの例としては、Gunicorn、uWSGI、Uvicorn (ASGI)、mod_wsgiやmod_python (Apache) などがある。また、FastCGIサーバとして起動して、FastCGIをサポートする任意のWebサーバのバックエンドとして使用することもできる。

Djangoが公式にサポートしている関係データベース (RDBMS) の例としては以下が挙げられる。

  • PostgreSQL
  • MySQL
  • SQLite
  • Oracle

さらにサードパーティから、Microsoft SQL Server用のアダプターDjango MSSQL、IBM DB2用のアダプターibm_dbに加え、SAP SQL Anywhere、ODBC、Firebirdへのアダプターも提供されているほか、NoSQL系のデータベースと接続するための拡張なども存在する。

The Django Book

The Django Bookは、DjangoについてのGNU Free Documentation Licenseでライセンスされたフリーの書籍である。2007年12月、Apressによって出版された。書籍はhttp://www.djangobook.com/で入手できる。

脚注

外部リンク

  • 公式ウェブサイト (英語)
  • The Django Book
  • DJANGOPROJECT.JP - 日本のユーザーコミュニティ

Top 20 MostUsed Django Packages and Libraries Django Stars

Les bases de Django StackLima

دوره آموزش Django آموزشگاه آکادمی دوران برگزاری دوره های آموزشی

LIVE DJANGO DJANGO 23/05/2015 Silent Radio

Django Packages Unlocking the Power of Python Web Apps