grasys blog

Django の入門:最初のプロジェクト作成と管理コンソールへのログイン設定

こんにちは、テケ コマルです。私は最近、Django フレームワークに初めて触れることになりました。これまでの経験から、Python を使ったウェブ開発に興味があり、Django の持つ多くの利点に惹かれて学び始めました。

このブログでは、私が Django を使い始めたばかりの初心者としての視点から、基本的な使い方や学習の過程で得た気づき、直面した課題などを共有していきます。Django に関する情報やヒントを一緒に学びながら、初心者の視点で役立つ情報を提供できればと思っています。もしも経験豊富な方がいれば、ぜひアドバイスをいただけると嬉しいです。

Django とは?

Django は高水準の Python フレームワークであり、Google で検索するとそれに関連する多くの情報が見つかります。個人的には、Django は非常にシンプルでありながら、非常に強力なフレームワークの一つであると考えています。

Django が非常に強力であると私が感じる理由のいくつかを次に示します。

まずセキュリティについて言えば、Django はセキュリティを重視しており、SQL インジェクションやクロスサイトリクエストフォージェリ(CSRF)に対する保護など、多くのセキュリティ機能がデフォルトで組み込まれています。

また、デフォルトの管理コンソールが用意されており、初心者でも簡単に学習を始めることができるので私は強力なフレームワークだと感じています。

実際にやってみましょう!!!

# まずディレクトリを作成する
mkdir MyFirstDjango
cd MyFirstDjango

# ryeを使用した仮想環境の起動
rye init              # srcフォルダは不要なので削除します
rye add django
source .venv/bin/activate

# Djangoプロジェクトの開始
django-admin startproject myproject
cd myproject

# デフォルトのデータベースを移行する
rye run python manage.py migrate

# サーバーを実行する
rye run python manage.py runserver

これで、Django のデフォルト設定は完了です。実際に何が起こったのか見ていきましょう。

ディレクトリ構造はこのように形成されます。


まずデータベースから始めましょう。

デフォルトでは、Django は Sqlite3 データベースを使用します。ただし、settings.py ファイルを変更することでこれを変更できます。私自身、実際に MySQL や PostgreSQL を使う場合の設定に苦労したので、これらについてはブログの後半で説明します。

ここで、2 つの非常に重要なファイル、settings.py と urls.py を見てみましょう。

urls.py ファイルには、いくつかの URL パターンがデフォルトですでに追加されていることがわかります。

urlpatterns = [
    path('admin/', admin.site.urls),
]

これは、URL に追加する必要があるパスです。たとえば、以下の URL http://127.0.0.1:8000/admin/ を実行すると、ログイン ページが表示されます。


URL パスを変更する場合は、admin を他の単語に置き換えるだけです。例えば、

urlpatterns = [
    path('users/', admin.site.urls),
]


それでは、次に settings.py ファイルについて説明しましょう。

データベースの設定が表示されます。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}


MySQL を使う場合は以下の設定になります。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',             #データベース名
        'USER': 'root',             #ユーザー名
        'PASSWORD': 'test',         #パースワード
        'HOST': 'localhost',        #データベースホストに設定する。
        'PORT': '3306'              #デフォルトの MySQl port.
    }
}


PostgreSQL を使う場合は以下の設定になります。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': 'test',
        'HOST': 'localhost',  # データベースホストに設定する。
        'PORT': '5432',       # デフォルトの PostgreSQL port.
    }
}

MTV アーキテクチャ (Model-Template-View)

Django がどのように動作するかを最初から最後まで見てみましょう。

urls.py ファイルを見るとわかるように、URL パスが追加されています。サーバーを起動したら、urls.py ファイルに追加された URL パスを渡す必要があります。

ユーザーは URL を入力します。たとえば、この場合はパスを http://127.0.0.1:8000/admin/ として渡す必要があります。

リクエストが生成されると、urls.py にアクセスし、正しい URL が入力されているかどうかを検索し、一致する場合は関連するビューを検索します。

urls.py ファイルに URL が記載されていない場合は、以下のように 404 エラーがスローされます。


View は実際のビジネス ロジックが記述される場所です。Model はデータベース テーブルが設定される場所です。Template は HTML ページが保存される場所です。

スーパーユーザーの作成

スーパーユーザーを作成するには、以下のコマンドを実行します。


ユーザー名とパスワードを使用して管理者にログインします。

ログインに成功すると、以下のようなページが表示されます。


このブログで説明したように、Django のモデル テンプレート ビュー (MTV) アーキテクチャと強力なデフォルトの管理インターフェイスは、Web アプリケーションを構築するための強固な基盤を提供します。これらの基本を理解することで、Django を使用した効率的でスケーラブルなプロジェクトの開発に着手できます。


採用情報
お問い合わせ