Webアプリケーション開発

Djangoとは?-Pythonを使用してWebアプリケーションを構築するためのフレームワークの紹介

Djangoは、プログラミング言語Pythonを使用してWebアプリケーションを構築するためのフレームワークです。

Djangoは、2005年にLawrence Journal-WorldのWeb開発者が、Webサイト構築のための言語としてPythonを使い始めたのがきっかけで誕生しました。そして2008年、フレームワークの最初の一般公開が始まりました。現在に至るまで、進化を続けているのです。したがって、本稿執筆時点のフレームワークの現行バージョンは、2021年12月にリリースされたバージョン4.0である。そして、バリエーションもコンスタントにリリースされています。

Djangoはかなり人気があります。Pinterest、National Geographic、Instagram、Washington Times、Mozillaなど、多くのサイトで使用されています。

フレームワークは無料です。 オープンソースとして開発されており、そのソースコードはオープンであり、githubのリポジトリにあります。

Django では、個人の小さなウェブサイトから高負荷で複雑なウェブサービスまで、幅広いウェブアプリケーションを構築することができます。

Django はデフォルトで、認証システム、サイトマップ生成など、多くの一般的なタスクに対して、すぐに使える機能を提供しているので、車輪を再発明する必要はなく、すでに箱から出してあるコンポーネントを利用すればよいだけなのです。。

Django はセキュリティに強くフォーカスしているので、開発者は sql インジェクションのような多くの一般的なセキュリティ問題を回避することができるフレームワークです。

Django フレームワークは Model-View-Template アーキテクチャパターン、略して MVT を実装しており、これは実際、ウェブプログラミングで広く使われている MVC (Model=-View-Controller) パターンを修正したものです。

Django における MVT のアーキテクチャを模式的に表すと、以下のようになります。

Model-View-Template アーキテクチャ

パターンの主な要素:

  • URLディスパッチャー:要求された URL に基づいて要求を受信した場合、どのリソースがその要求を処理すべきかを決定する。
  • ビュー(View):リクエストを受け取り、それを処理し、何らかのレスポンスをユーザーに送ります。リクエストを処理するためにモデルやデータベースにアクセスする必要がある場合、Viewはそれらと対話する。テンプレートや雛形を使って、回答を作成することができます。MVCアーキテクチャでは、このコンポーネントはコントローラーに相当します(表現は該当しません)。
  • モデル:アプリケーションで使用されるデータを記述します。個々のクラスは、通常、データベースのテーブルに対応する。
  • テンプレート:生成されたhtmlマークアップの形で、ビューのロジックを表します。MVCでは、このコンポーネントがView、すなわちビューに相当する。

アプリケーションにリクエストが来ると、URLディスパッチャはそのリクエストがどのリソースにマッピングされているかを判断し、選択されたリソースにリクエストを渡します。リソースとは、実際にはリクエストを受け取り、それをある方法で処理する機能またはViewを表します。処理中、Viewはモデルやデータベースにアクセスし、そこからデータを受信したり、逆にデータを保存したりすることがあります。クエリ処理の結果は送り返され、ユーザーはこの結果をブラウザで見ることができる。クエリ処理の結果は、原則としてテンプレートで生成されたhtmlコードとなります。

この記事を書いた人

その他記事はこちら

オロゾママトフアイジギト

マネージャー / SE

キルギスから来ました。よろしくお願いします。

その他記事はこちら

関連記事