Django (ジャンゴ) について
Djangoは、
Pythonで実装された
Webアプリケーションフレームワークです。MVC(Model-View-Controller)デザインパターンに緩やかに従っており、複雑なデータベース主体の
ウェブサイト構築を効率化することを主な目的としています。再利用性、プラグイン性、迅速な開発、そしてDon't repeat yourself (DRY) の原則を重視している点が特徴です。Djangoでは、データのモデルからファイルに至るまで、
Pythonが一貫して使用されています。
歴史
Djangoは、元々アメリカのニュース系サイトを管理するために開発され、
2005年7月に
BSD[[ライセンス]]で公開されました。フレームワークの名前は、ジャズギタリストのジャンゴ・ラインハルトに由来します。
特徴
Djangoの大きな特徴は、動的に生成され、
データモデルの定義を通じて完全に構成可能なデータベース管理CRUDインターフェースを提供できる点です。また、
Python 3系統への対応は、バージョン1.5で実験的に開始され、1.6からは本格的にサポートされました。
Python 2系統への対応は、バージョン1.11で終了しています。
採用事例
Djangoは、PBS、
Instagram、Mozilla、Disqus、
Bitbucket、Nextdoorなど、多くの有名なWebサイトで利用されています。
Djangoのコンポーネント
Djangoフレームワークの核となる部分は、以下の要素で構成されています。
O/Rマッパー:データモデル(Pythonクラスとして定義)と関係データベースとの橋渡しを行います。
URLディスパッチャ:
正規表現に基づいてURLを処理します。
ビューシステム:リクエストを処理してレスポンスを返します。
テンプレートシステム:動的なWebページの生成をサポートします。
さらに、以下の機能もフレームワークに含まれています。
軽量Webサーバ:開発やテストに利用できるスタンドアロンのWebサーバです。
フォーム処理システム:HTMLフォームのデータをデータベースに格納可能な形式に変換、検証します。
キャッシュフレームワーク:複数のキャッシュ方式をサポートします。
ミドルウェア:リクエスト処理の各段階でカスタム処理を挿入可能です。
ディスパッチャ:アプリケーションコンポーネント間のイベント通信を実現します。
国際化機構:Django自身も多言語対応しており、多言語サイトの構築を支援します。
シリアル化機構:モデルインスタンスをXMLや形式で入出力できます。
テンプレート拡張機構:
テンプレートエンジンの機能を拡張できます。
バンドルされるアプリケーション
Djangoの公式配布物には、以下のような多くの便利なアプリケーションが含まれています。
認証機構:拡張可能な認証システムを提供します。
動的管理インターフェース:データベース管理用の動的なインターフェースを提供します。
フィード生成ツール:RSSやAtomフィードを生成します。
コメントシステム:柔軟なコメント機能を実装できます。
サイトマップ生成ツール:サイトマップを生成します。
CSRF対策:
クロスサイトリクエストフォージェリを防ぐためのツールを提供します。
テンプレートライブラリ:TextileやMarkdownなどの軽量マークアップ言語を使用可能にします。
サーバ構成
Djangoは、WSGI (Web Server Gateway Interface) および ASGI (Asynchronous Server Gateway Interface) に対応しており、これらのインターフェースをサポートするWebアプリケーションサーバ上で動作します。例えば、Gunicorn、uWSGI、Uvicornなどが利用できます。また、NginxやApacheといったWebサーバと組み合わせて使用することも可能です。さらに、FastCGIサーバとして起動し、FastCGIをサポートするWebサーバのバックエンドとしても機能します。
サポートするデータベース
Djangoは、以下の関係データベースを公式にサポートしています。
PostgreSQL
MySQL
SQLite
Oracle
また、サードパーティ製のアダプターを利用することで、Microsoft SQL Server、IBM DB2、SAP SQL Anywhere、ODBC、Firebirdなどのデータベースにも接続可能です。さらに、NoSQLデータベースとの連携を可能にする拡張機能も存在します。
The Django Book
『The Django Book』は、Djangoについて解説したフリーの書籍で、GNU Free Documentation Licenseの下で提供されています。オンラインで閲覧可能です。
脚注
(特になし)
外部リンク
公式ウェブサイト (英語)
The Django Book
DJANGOPROJECT.JP - 日本のユーザーコミュニティ