---
title: "Django の入門：最初のプロジェクト作成と管理コンソールへのログイン設定 | grasys blog"
url: "https://blog.grasys.io/post/komal-teke/django-introduction/"
description: "こんにちは、テケ コマルです。私は最近、Django フレームワークに初めて触れることになりました。これまでの経験から、Python を使ったウェブ開発に興味があり、Django の持つ多くの利点に惹かれて学び始めました。 このブログでは、私が Django を使い始めたばかりの初心者としての視点から、基本的な使い方…"
---

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

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[Komal Teke](/authors/komal-teke/)
-   公開日：2024年9月11日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#Django](/tags/django/)

![Django の入門：最初のプロジェクト作成と管理コンソールへのログイン設定](/_astro/hero.MffYQkvs_Z1hOCoP.webp)

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

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

## Django とは？

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

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

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

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

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

Plain textcontent\_copy

```
# まずディレクトリを作成する
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 のデフォルト設定は完了です。実際に何が起こったのか見ていきましょう。

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

![サーバーを実行する画面（1）](/_astro/01-AD_4nXeyRJ1xTuat1720flfu10Gm96vUic82gfdq5OzPT3AHyIjAZHTil9mo3StXe1DVZsmYJ7uNA0kHeIShZrVcfSIGv4rqCxzoJklrov1U0VplO7NBx3bo-8c970267.DHpWWRWG_Z1SyGGa.webp)

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

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

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

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

Plain textcontent\_copy

```
urlpatterns = [
    path（'admin/', admin.site.urls）,
]
```

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

![サーバーを実行する画面（2）](/_astro/02-AD_4nXdo7aIP_YGst3IyqfkbHULYPz907ld2H2a6TBGVJNS4sZYUHZKQkpru709hmllzd_vC4j6GUUl9oyURDQwVE_FOpKUJ-MNgBiHNffZFzZeGolhlP_t5-411ba93f.CIkr2S2i_1vsTqt.webp)

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

Plain textcontent\_copy

```
urlpatterns = [
    path（'users/', admin.site.urls）,
]
```

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

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

Plain textcontent\_copy

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

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

Plain textcontent\_copy

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

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

Plain textcontent\_copy

```
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/](http://127.0.0.1:8000/admin/) として渡す必要があります。

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

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

![MTV アーキテクチャ （Model-Template-View）の画面](/_astro/03-AD_4nXed4HvnddRUYGKJJozRHkUsLS-QPar5CimjHQs4MIpYW_j6glr3x9ZwyeuYNbh3O1GlZO0VL6aA0iMmtcReSWIxtnpYgBHr2-hzrcvJDc6vRwSMhKyH-0da6b049.DvvIQrMy_Z2fgbop.webp)

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

## スーパーユーザーの作成

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

![スーパーユーザーの作成の画面（1）](/_astro/04-AD_4nXeQYQk0b5etU2egXj8OMKjZ2hwcHrDmHo6VUVRnMwo8FzzCDWRa0ztR9lt2jZNdfrJiwEbUpXMpcUzE8Bt9dcO-dpuGnfZx6HLUDsdIOtIEb422vwId-e82e20e2.CShCDqGk_2iMHBd.webp)

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

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

![スーパーユーザーの作成の画面（2）](/_astro/05-AD_4nXfaNcPTYbf4n9fMDj1QxvDbeRD-N6UfbetW-nTlBOwxMBupNdCOIbJUpjjri7lWcQewqfQQL0reBcj--PgcfdbSsdAYySUy0DIJWIvA8iSQkfIHDz0p-e303654a.C_0mg9ZG_17EkdG.webp)

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

## この記事を書いた人

[![](/_astro/komal-teke.vvtJae1f_ZxagEz.webp)](/authors/komal-teke/)

### [Komal Teke](/authors/komal-teke/)

Google Cloud、データエンジニアリング、生成AIを中心に、クラウド技術の検証や実装に取り組んでいます。

[プロフィールと記事一覧](/authors/komal-teke/)