djangoのプロジェクトを作成すると,自動的にデータベースが作成され,デフォルトでSQLiteが使用されます
他にもPostgreSQL,MariaDB,MySQL,Oracleを使うことが可能です
しかし,データベースをどのように設定すればいいのか?どう扱うのか?といった疑問は多いです
本記事ではdjangoのデータベースの初期設定をSQLiteで行い,データベースを設定方法や編集方法について解説します
本記事を読むことで,djangoでの基本的なデータベースの扱い方が理解できます
django用の初期データベーステーブルを作成する
まずSQLiteデータベース内にテーブルを作成します
コマンドプロンプト(ターミナル)から以下のコマンドを実行しましょう
python manage.py migrate
この際settings.pyのINSTALLED_APPSに含まれているアプリケーションごとにテーブルが作成されます
djangoのデータベースに新しいテーブルを追加する
SQLiteにdjangoの初期データベーステーブルを作成した後は,自身で定義したテーブルを作成します
djangoに新しいデータベーステーブルを追加したい場合は,models.pyを編集します
その次に,モデルを有効化します
models.pyに新しいテーブルを定義する
models.pyに自身が追加したいテーブルを定義します
今回はブログっぽい感じで作成します
from django.db import models
class Blog(models.Model):
title = models.CharField(max_length=200)
content = models.TextField(blank=True)
updated_at = models.DateTimeField(auto_now=True)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
class Meta:
db_table = 'blogs'
ブログのタイトル,内容,作成日,更新日が含まれるテーブルにしました
アプリケーションを有効化する
djangoではプロジェクトに自身のアプリケーションを追加してあげないといけません
以下のファイルを確認しましょう
INSTALLED_APPS = [
'blog.apps.BlogConfig', # 確認してください
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
追加されていなかった場合はこちらにアプリケーションを追加しましょう
models.pyの変更を反映する
models.pyで変更した箇所を反映するために,以下のコマンドを打ちましょう
python manage.py makemigrations blog
コマンドを実行すると以下のようになったと思います
Migrations for 'blog':
blog\migrations\0001_initial.py
- Create model Blog
さらにblog/migrations/0001_initial.pyが作成されたと思います
これでmodels.pyに変更した箇所が反映されました
テーブルを作成する
ではテーブル作成をしましょう
python manage.py migrate
以下のような結果が出たと思います
Operations to perform:
Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
Applying blog.0001_initial... OK
つまり,0001_initialの変更が適用されました
djangoの管理画面を使ってデータベースを編集する
djangoの管理ユーザーページは非常に便利で,簡単にモデルの編集を行うことができます
このためにdjangoを使うという方もいます
管理ユーザーを作成する
作成手順は簡単です.以下のコマンドを打ち込んでください
python manage.py createsuperuser
上記のコマンドを打つと以下のように順番に入力を求められます
Username: admin
Email address: admin@example.com
Password: ********
Password (again): ********
Superuser created successfully.
これで管理ユーザーの完成です.
管理画面へのログイン
管理ユーザーを作成したのでログインしてみましょう
djangoの開発サーバーを立ち上げます
python manage.py runserver
下記のadminページにアクセスします.
http://127.0.0.1:8000/admin/
このようなページが表示されるのでログインしてみてください
ログインが完了したら以下のようになります
admin上でデータベーステーブルを編集できるようにする
今の状態ではadminでGroupsとUsersしかないと思います
ここに自身で作ったモデルを表示させて編集できるようにします
from django.contrib import admin
from .models import Blog
admin.site.register(Blog)
これだけです.ブラウザを再読み込みしてみましょう.
自身で作成したモデルが表示されていれば完了です
あとは好きに編集できますので,お楽しみください
参考文献
下記にModelsの公式ドキュメントと関連記事をまとめているので,参考にしてください
Modelsの公式ドキュメント
モデルでCharFieldとTextFieldで文字列を扱う
モデルにURL専用のフィールドを追加する
choiceで選択肢から選ぶ
お疲れ様でした
コメント