見出し画像

Django 入門 (5) - データベース

「Django」のデータベースの使い方をまとめました。

・Django 3.0.8

前回

1. データベース

「Django」で使えるデータベースは、次の3つです。

・MySQL
・PostgreSQL
・SQLite

今回は、「SQLite」を使います。

2. データベースの前準備

「データベース」を使うは、プロジェクトの「hello_app/hello_app/settings.py」の「DATABASE」を設定します。
「SQLite」を使う場合は、デフォルトのままで問題ありません。

◎ SQLite

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

◎ MySQL

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<データベース名>',
        'USER': '<ユーザー名>',
        'PASSWORD': '<パスワード>',
        'HOST': '<ホスト名>',
        'PORT': '3306',
    }
}

◎ PostgreSQL

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '<データベース名>',
        'USER': '<ユーザー名>',
        'PASSWORD': '<パスワード>',
        'HOST': '<ホスト名>',
        'PORT': '5432',
    }
}

3. テーブルの作成

(1) 「hello_app/hello/models.py」を以下のように編集。
テーブルの行のデータ型になります。

from django.db import models

class Member(models.Model):
    name = models.CharField(max_length=50) # 名前
    age = models.IntegerField(default=0) # 年齢
    birthday = models.DateField() # 誕生日

(2) 以下のコマンドで、マイグレーションファイルを作成。

$ python manage.py makemigrations hello
Migrations for 'hello':
  hello/migrations/0001_initial.py
    - Create model Member

hello_app/hello/migrations/0001_initial.py」が生成されます。
(3) 以下のコマンドで、マイグレーションを実行。

$ python manage.py migrate

hello_app/db.sqlite3」が生成されます。

4. 管理ユーザーの作成

(1) 以下のコマンドで、管理ユーザーを作成します。

$ python manage.py createsuperuser

(2) 以下の項目を入力。

・Username : 管理ユーザーの名前(admin)
・Email address : メールアドレス
・Password : パスワード(8文字以上)
・Password (again) : パスワード(8文字以上)

5. テーブルのデータ追加

(1) 「hello_app/hello/admin.py」を以下のように編集。
管理対象のモデルを登録します。

from django.contrib import admin
from .models import Member

admin.site.register(Member)

(2) Webアプリを実行し、ブラウザで「http://localhost:8000/admin」を開き、「Username」と「Password」を入力して「Login」ボタンを押す。

画像1

(3) 「HELLO」の「Members」をクリック。

画像2

(4) 「Add Member」ボタンをクリック。

画像3

(5) メンバー情報を入力して、「Save」ボタンをクリック。

画像4

(6) 同様に3人ほどメンバー情報を追加。

画像5

6. テーブルの利用

(1) 「hello_app/hello/templates/hello/index.html」を以下のように編集。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <table>
      <tr>
        <th>ID</th>
        <th>名前</th>
        <th>年齢</th>
        <th>誕生日</th>
      </tr>
      {% for item in items %}
      <tr>
        <th>{{item.id}}</th>
        <th>{{item.name}}</th>
        <th>{{item.age}}</th>
        <th>{{item.birthday}}</th>
      </tr>      
      {% endfor %}      
    </table>
  </body>
</html>

テンプレートタグは、次のとおりです。

{% for item in items %} : forループの開始
{% endfor %} : forループの終了

(2) 「hello_app/hello/view.py」を以下のように編集。

from django.shortcuts import render
from .models import Member

def index(request):
   params = {'items': Member.objects.all()}
   return render(request, 'hello/index.html', params)

(3) Webアプリを実行し、ブラウザで「http://localhost:8000/hello」を開く。

画像6

次回


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