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」ボタンを押す。
(3) 「HELLO」の「Members」をクリック。
(4) 「Add Member」ボタンをクリック。
(5) メンバー情報を入力して、「Save」ボタンをクリック。
(6) 同様に3人ほどメンバー情報を追加。
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」を開く。
次回
この記事が気に入ったらサポートをしてみませんか?