Django
Django(ジャンゴ)は、Pythonで実装されたWebアプリケーションフレームワーク。MVCデザインパターンに緩やかに従う。もともとはアメリカ合衆国カンザス州ローレンスにあるWorld Company[8]のために、ニュース系のサイトを管理する目的で開発され、2005年7月にBSD Licenseで公式にリリースされた。フレームワークはジプシー・スウィングのギタリストであるジャンゴ・ラインハルトにちなんで命名された。
![]() | |
![]() Djangoのデフォルトページ | |
作者 | エイドリアン・ホロバティ、サイモン・ウィリソン |
---|---|
開発元 | ジャンゴソフトウェア財団[1] |
初版 | 2005年7月21日[2] |
最新版 |
4.1.3
/ 2022年11月1日[3] |
リポジトリ | Django Repository |
プログラミング 言語 | Python[4] |
サイズ | 9.5 MB[5] |
種別 | Webアプリケーションフレームワーク[6] |
ライセンス | 3-clause BSD[7] |
公式サイト |
www |
Djangoの第一の目的は、複雑なデータベース主体のウェブサイトの構築を簡単にすることであり、コンポーネントの再利用性と'pluggability'、素早い開発、Don't repeat yourselfの原則に力点を置いている。ファイルやデータのモデルにいたるまで、Pythonが一貫して用いられている。Djangoはまた、動的に生成され、データモデルの定義を通じて完全に構成することができる、データベース管理CRUDインターフェイスをオプションで提供する。Python3系統にはDjango 1.5バージョンで実験的に対応し、Django 1.6より本格的に対応した[9][10]。Python2系統への対応は、バージョン1.11(3年サポートのLTS、2020年4月まで)が最後となり、2.0でPython3.4以降、2.1でPython3.5以降にのみの対応となった[11]。
Djangoを使用している有名なサイトには、PBS[12]、Instagram[13]、 Mozilla[14]、Disqus[15]、Bitbucket[16]、Nextdoor[17]などがある。
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) の例としては以下が挙げられる。
さらにサードパーティから、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/で入手できる。
脚注
編集- ^ “django/README”. GitHub. September 8, 2020閲覧。
- ^ “Django FAQ”. 27 March 2019閲覧。
- ^ [1] - Release 4.1.3
- ^ “django/README”. GitHub. September 8, 2020閲覧。
- ^ “Django Download”. 2021年12月15日閲覧。
- ^ “django/README”. GitHub. 2020年9月8日閲覧。
- ^ “django/LICENSE”. GitHub. 2020年9月8日閲覧。
- ^ LJWorld.com / About us
- ^ “DjangoかPyramidか!? 火花散るパネルに注目のPyCon JPレポート” (2012年9月24日). 2014年3月11日閲覧。
- ^ “Django 1.6, Python 3 & PostGIS” (2013年11月18日). 2014年3月11日閲覧。
- ^ “FAQ: Installation”. 2018年12月27日閲覧。
- ^ “20 Creative Websites Running Django”. 2020年10月1日閲覧。
- ^ “What Powers Instagram: Hundreds of Instances, Dozens of Technologies”. 2020年10月1日閲覧。
- ^ “Python”. Mozilla Developer Network. 30 April 2016閲覧。
- ^ “Scaling Django to 8 Billion Page Views”. 2020年10月1日閲覧。
- ^ “DjangoSuccessStoryBitbucket – Django”. 20 April 2016時点のオリジナルよりアーカイブ。30 April 2016閲覧。
- ^ “The anti-Facebook: one in four American neighborhoods are now using this private social network”. The Verge. 16 June 2016閲覧。
外部リンク
編集- 公式ウェブサイト
- The Django Book
- DJANGOPROJECT.JP - 日本のユーザーコミュニティ