初心者向けの Django チュートリアル: 機能、 Archi構造と歴史
Django チュートリアルの概要
この Django チュートリアルでは、すべての基本トピックを最初から説明します。このチュートリアルでは、Django とは何か、Django の歴史、Django の機能、Django フレームワークの特性、Django のコンポーネント、利点と欠点などの概念を学習します。
Django を学習する前に、次のことを理解しましょう。
Web フレームワークとは何ですか?
Web フレームワークは、柔軟でスケーラブルで保守可能な Web フレームワークを構築するのに役立つコード ライブラリです。 動的な Web サイト、Web アプリ、および Web サービス。 PHP には Zend などのさまざまな Web フレームワークがあり、 Ruby on Rails ルビーなどの場合
Djangoとは何ですか?
ジャンゴ ウェブ開発フレームワークです Python 高速かつ効果的な Web サイト開発のための標準的な方法を提供します。この高レベルの Web フレームワークの主な目的は、複雑なデータベース駆動型 Web サイトを作成することです。高品質の Web アプリケーションの構築と維持に役立ちます。開発プロセスをスムーズにし、時間を節約して迅速な開発を可能にします。
なぜジャンゴなのか? Django の主な利点
Django の主な利点は次のとおりです。
- Django はセットアップと実行が簡単です。 始めるためのさまざまなオプションを提供します
- 管理アクティビティ用にすぐに使用できるユーザー インターフェイスを提供します。
- 内蔵の国際化システムを使用して、Web サイトの多言語化を可能にします。
- 大量のトラフィック需要に迅速に対応できるようにします
- Django は、あらゆる種類のコンテンツ管理システム、ソーシャル ネットワーク、科学計算プラットフォームの構築に使用されます。
- Django は、エンドツーエンドのアプリケーション テストの提供に役立ちます
- HTML 出力を使用して API を文書化するのに役立ちます
- REST フレームワークは、いくつかの認証プロトコルを豊富にサポートしています
- 権限とスロットルポリシー
- これは、単一ユーザーからの API リクエストのレート制限に広く使用されています。
ジャンゴの歴史
年 | マイルストーン |
---|---|
2003 | このプロジェクトは、Lawrence Journal-World 新聞の内部プロジェクトとして、Adian Holovaty と Simon Willison によって開始されました。 |
2005年7月 | ジャズギタリストのジャンゴ・ラインハルトにちなんで「ジャンゴ」として2005年XNUMX月に発売されました。 |
2008年6月 | Django ソフトウェアであると宣言されました Foundation (DSF) は Django を維持します。 |
2018年7月19日 | Django 1.1 バージョンは、集計やトランザクションベースのテストなどの機能を備えてリリースされました。 |
2019年5月29日 | Django 1.2 バージョンがリリースされました。このアップデートでは、複数のデータベース、電子メール バックエンドの実装、セッションと Cookie の改善などの機能が提供されました。 |
月23 2011 | クラスベースのビュー、静的ファイルなどの機能を備えた 1.3 バージョンが導入されました |
月23 2012 | タイムゾーンやブラウザ内テストなどの新機能を備えた 1.4 バージョンがリリースされました |
2月26 2013 | 1.5バージョンには Python 3 サポート、構成可能なユーザー モデル機能。 |
6月2013日 | 1.6 バージョンには、DB トランザクション管理、接続プール機能が付属しています。 |
2 9月2014 | 1.7 バージョンには、アプリケーションのロード、移行、構成などの新機能がありました |
4月1 2015 | 複数のテンプレート エンジンに対してネイティブ サポートが提供されます。 |
1 Dec 2015 | 1.9 バージョンでは、自動パスワード検証機能が導入されました。 |
8月1 2016 | 1.10 バージョンでは、次の全文検索が行われます。 PostgreSQL 開始されました。 |
4月4 2017 | 1.11バージョンはサポートされる最後のバージョンになります Python 2.7 |
2 Dec 2017 | バージョン 2.0 は、最初の Python 3 のみのリリース バージョンになります。 |
8月1 2018 | バージョン 2.1 には、モデルの「表示」権限サポート機能が付属しています。 |
2021 | Django 3.0 のサポートを削除し、Django 3.2 のサポートを追加しました |
この初心者向け Django チュートリアルでは、Django の機能について学びましょう。
Djangoの機能
Django の特徴は次のとおりです。
- アプリケーション内の URL のパターンを定義するのに役立ちます
- シンプルだが強力な URL システム
- 内蔵認証システム
- クラス最高のデータ保存と検索を提供するオブジェクト指向プログラミング言語データベース
- 自動管理インターフェイス機能により、項目の追加、編集、削除の機能が可能になります。 必要に応じて管理パネルをカスタマイズできます。
- キャッシュ フレームワークには、複数のキャッシュ メカニズムが付属しています。
この Django フレームワーク チュートリアルでは、Django の特性について学びます。
ジャンゴの特徴
Django の主な特徴は次のとおりです。
- 疎結合 - Django は、スタックの各要素を他の要素から独立させるのに役立ちます。
- Less コード - 効果的な開発を保証する
- 繰り返さない - すべてを再度繰り返すのではなく、正確に XNUMX か所で開発する必要があります
- 迅速な開発 - Django は、迅速かつ信頼性の高いアプリケーション開発を提供します。
- 一貫した設計 - Django はクリーンな設計を維持し、Web 開発のベストプラクティスに簡単に従うことができます。
次に、この Django 初心者向けチュートリアルでは、Django のアーキテクチャについて学習します。
ジャンゴ Archi構造: MVC と MVT
以下は Django の詳細なアーキテクチャです。
MVCパターン
UI (Web またはデスクトップ) を提供するアプリケーションについて話すとき、通常は MVC アーキテクチャについて話します。MVC パターンは、モデル、ビュー、コントローラーに基づいています。
この モデル データ構造を定義し、データベースへのクエリを処理します。
この 表示 どのデータを提示するかを定義し、HTTP 応答を返します。
この コントローラー ユーザー対話を処理するアプリケーションの一部です。
Django MVC-MVT パターン
モデル・ビュー・テンプレート (MVT) は、MVC とは異なる概念です。この 2 つのアーキテクチャ パターンの主な違いは、Django 自体がコントローラー部分 (モデルとビュー間のやり取りを制御するソフトウェア コード) を管理することです。テンプレートは、DTL とも呼ばれる Django テンプレート言語ファイルと混合された HTML ファイルです。
以下の図は、MVT パターンのすべてのコンポーネントがどのように相互作用してユーザー リクエストに固有のサービスを提供するかを示しています。
上の図にあるように、ユーザーは Django にリソースをリクエストします。 Django はコントローラーとして機能し、URL 内の使用可能なリソースをチェックします。
URL マップの場合、モデルとテンプレートと対話するビューが呼び出されます。 その後、Django はユーザーに応答し、応答としてテンプレートを送信します。
この初心者向け Django チュートリアル シリーズでは、Django のコンポーネントについて学びます。
Django のコンポーネント
フォーム
Djangoには、フォームをHTMLとしてレンダリングする強力なフォームライブラリがあります。このライブラリは、送信されたデータを検証し、それを Python タイプ。
認証
ユーザーアカウント、グループ、Cookieベースのユーザーセッションなどを処理します。
モデル内のメタデータを読み取り、サイト上のコンテンツを管理するために使用できる堅牢なインターフェイスを提供します。
国際化
Django は、テキストをさまざまな言語に翻訳したり、日付、時刻、数値、タイムゾーンのロケール固有の書式設定をサポートしています。
セキュリティ
Django は次の攻撃に対する保護を提供します。
- クロスサイトリクエストフォージェリ(CSRF)
- クロスサイトスクリプティング
- SQLインジェクション
- クリックジャッキング
- リモートコード実行
Djangoを使用している有名企業
Django を使用している企業は次のとおりです。
- BitBucket
- 分遅れ
- 米航空宇宙局(NASA)
- PBS (公共放送サービス)
- モジラ
- ワシントン・ポスト
- NYタイムズ
- LAタイムズ
- ガーディアン・ナショナル・ジオグラフィック紙
- ディスカバリーチャンネル
Django を使用するデメリット
- プロセスは複数のリクエストを同時に処理することはできません。
- Django は非常にモノリシックなツールです。
- コンポーネントが一緒にデプロイされると、混乱が生じる可能性があります。
- Django で作業するために必要な完全なシステムの知識
- Web アプリケーションのコンポーネントを密結合にする
- 軽微なタスクについては、長時間のプログラミングを行う必要があります。
まとめ
- Django は、次の Web 開発フレームワークです。 Python これは、迅速かつ効果的な Web サイト開発のための標準的な方法を提供します。
- Django は、2003 年にローレンス ジャーナル ワールド新聞の内部プロジェクトとして Adian Holovaty と Simon Willison によって開始されました。
- Django は、HTML 出力を使用して API を文書化するのに役立ちます。
- Django では、必要に応じて管理パネルをカスタマイズできます。
- Django は、スタックの各要素を他の要素から独立させるのに役立ちます。
- MVC と MVT アーキテクチャ パターンの主な違いは、Django 自体がコントローラー部分を管理することです。
- Django のアーキテクチャの必須コンポーネントは、フォーム、認証、管理、国際化、セキュリティです。
- Bitbucket、DISQUS、Nasa、Pinterest、Instagram、Mozilla などは Django を使用しています
- Django の最大の欠点は、複数のリクエストを同時に処理できないことです。