見出し画像

Django4の説明:プロジェクト単位


1.前提

秀和システムの『Django4 Webアプリ開発実装ハンドブック』の会員制フォトギャラリーをベースにしています
詳細な説明や作成方法は本に記載されています

ただし、データベースはMySQLを利用します

Pythonの学習をする際、特にWeb開発をする際、何が必要かを学ぶことも必要です
Djnagoは単にWeb用のフレームワークです

2.Djangoについて

Django(ジャンゴ)は、Pythonプログラミング言語で書かれた高度なウェブアプリケーションフレームワークです。Djangoは、ウェブアプリケーションの開発を簡素化し、高速化するために多くのツールと機能を提供します。以下に、Djangoの詳細な説明を提供します:

  1. MVC フレームワーク:

    • Djangoは、モデル-ビュー-コントローラー(MVC)パターンに基づいていますが、Djangoでは通常モデル-ビュー-テンプレート(MVT)と呼ばれています。これはウェブアプリケーションの構造を効果的に整理し、コードの再利用と保守性を向上させます。

  2. ORM(Object-Relational Mapping):

    • Djangoは、データベースとのやりとりを抽象化する強力なORMを提供します。これにより、Pythonクラスを使用してデータベーステーブルを定義し、SQLクエリを直接書かずにデータベースを操作できます。

  3. URL ルーティング:

    • Djangoでは、URLパターンを定義して、どのビューが特定のURLにマップされるかを設定できます。これにより、ウェブアプリケーションのルーティングを簡単に設定できます。

  4. テンプレートエンジン:

    • Djangoには、ウェブページの表示を制御するためのテンプレートエンジンが組み込まれています。これにより、HTMLコードとPythonコードを分離し、デザイナーと開発者が協力してウェブページを作成できます。

  5. ユーザーオーセンティケーション:

    • Djangoは、ユーザー認証とセッション管理のための組み込み機能を提供します。ユーザーアカウント、パスワードのリセット、パーミッション管理などの認証関連のタスクを簡単に実装できます。

  6. 管理者ページ:

    • Djangoには、データベースの内容を管理するための組み込み管理者ページがあります。開発者は独自のモデルを定義し、それらを管理者ページに追加できます。

  7. セキュリティ:

    • Djangoはセキュリティに焦点を当てて設計されており、クロスサイトスクリプティング(XSS)やSQLインジェクションなどの一般的なウェブセキュリティ脆弱性から保護する多くの組み込みセキュリティ機能を提供しています。

  8. 拡張可能性:

    • Djangoは、多くのサードパーティライブラリやプラグインをサポートしており、機能の拡張が容易です。また、Djangoアプリケーションは再利用可能で、新しいプロジェクトに組み込みやすいです。

  9. コミュニティとドキュメンテーション:

    • Djangoは広範なコミュニティと豊富なドキュメンテーションを持っており、問題解決や質問への回答が簡単に見つかります。

Djangoは、大規模なウェブプロジェクトから小規模なウェブアプリケーションまで、さまざまなウェブ開発プロジェクトに適しており、生産性と効率を向上させるための強力なツールと機能を提供します。


3.プロジェクト単位の主要なファイルの説明

3.1.settings.py

settings.pyの概要図

Djangoプロジェクトの設定を含むファイルである「settings.py」を示しています。このファイルはDjangoアプリケーションの設定を構成し、アプリケーションの動作や振る舞いを制御します。
以下はこの設定ファイルの主要な部分の説明です:

説明図

このファイルはDjangoプロジェクトの設定をカスタマイズし、プロジェクトが正しく動作するための重要な情報を含んでいます。設定ファイルの内容はプロジェクトの要件に合わせて調整されます。

3.2.urls.py

DjangoアプリケーションのURLパターンを定義しています。DjangoのURL設定は、特定のURLに対してどのビュー(ウェブページ)を表示するかを指定するために使用されます。
以下は、このコードの詳細な説明です。

  1. from django.contrib import admin および from django.urls import path, include:

    • django.contrib.admin モジュールをインポートし、Djangoの管理者ページにアクセスできるようにします。

    • django.urls.pathdjango.urls.include モジュールをインポートします。これらはURLパターンを設定するために必要な関数とクラスを提供します。

  2. from django.contrib.auth import views as auth_views:

    • django.contrib.auth モジュールから views モジュールを auth_views という別名でインポートします。これは、ユーザー認証関連のビューを使用するために必要です。

  3. urlpatterns リスト:

    • このリストには、アプリケーションのURLパターンが含まれています。各要素は、特定のURLパスに対応するビューを指定します。

  4. path('admin/', admin.site.urls):

    • '/admin/' というURLパスにアクセスした場合、Djangoの管理者ページが表示されます。

  5. path('', include('photo.urls')):

    • ルートURL('/') にアクセスした場合、photo.urls モジュールのURLパターンをインクルードします。これは、photo アプリケーションのURL設定を含む別のモジュールを参照しています。

  6. path('', include('accounts.urls')):

    • ルートURL('/') にアクセスした場合、accounts.urls モジュールのURLパターンをインクルードします。これは、accounts アプリケーションのURL設定を含む別のモジュールを参照しています。

  7. パスワードリセットのためのURLパターン:

    • パスワードリセットに関連するいくつかのURLパターンが定義されています。これらのパターンは、ユーザーがパスワードをリセットする際に使用されます。それぞれのURLパターンは、対応するビューを指定し、テンプレートを提供しています。

    • path('password_reset/', ...):パスワードリセット申し込みページのURLパターン。

    • path('password_reset/done/', ...):メール送信完了ページのURLパターン。

    • path('reset/<uidb64>/<token>', ...):パスワードリセットページのURLパターン。<uidb64><token> は動的なパラメータを表します。

    • path('reset/done/', ...):パスワードリセット完了ページのURLパターン。

各URLパターンは、関連するビュークラス(auth_views.PasswordResetViewauth_views.PasswordResetDoneView など)を指定し、それぞれのビューで表示するテンプレートを指定しています。これにより、ユーザーがパスワードリセット関連の操作を実行できるウェブページが提供されます。


この記事が気に入ったらサポートをしてみませんか?