DjangoでSQLiteを利用する

2019年11月1日

DjangoはデフォルトでSQLiteが利用できるように設定されています。本記事では、データベースにおけるテーブルを作成し、管理サイトを利用してデータを登録できるようにしてみます。

 

作成したテーブルの確認やデータの登録を管理サイトでおこなうには、あらかじめログインできる状態にしておきます。下記関連サイトをご参照下さい。またmyapp1という名前のアプリケーションを作成した前提で話を進めます。

 

関連サイト

管理サイト画面(admin)にログインする

 

 

setting.py を確認するとDATABASESにはすでにSQLiteが設定済みであることが確認できます。

 

manage.pyのあるルートディレクトリにはdb.sqlite3ファイルが存在します。下記コマンドで接続することも可能です。

 

 

大まかに下記の手順をおこないます。

1. テーブルのスキーマ情報となるモデルを作成する(models.pyを編集する)。

2. マイグレーションファイルの作成(makemigrations)と実行(migrate)。

3. admin.pyを編集する。

 

 

1. models.pyを編集する


 

myapp1アプリケーションディレクトリの中のmodels.pyを下記のように編集します。

 

myapp1/models.py

Memberモデル(データベースにおけるテーブル)を作成し、nameとageカラムを作成しています。def __str__(self)は、文字列を返す関数です。上記ではnameを返していますが、ここでは具体的に管理サイトでデータを登録した際のレコード名として表示されるようになります(下記画像)。また主キーを指定しない場合、記述していないidカラム(integer型/PRIMARY KEY)が自動的に付加されます。

 

 

 

2. マイグレーションファイルの作成と実行


 

マイグレーションファイルを作成します。

 

コマンドを実行するとmyapp1/migrationsディレクトリ内に、0001_initial.pyというファイルが生成されます。これがマイグレーションファイルで、モデル(テーブル)をデータベースに反映させるための中間ファイルです。モデルを編集し、makemigrationsを実行するとごとに002〜.py、003〜.pyとマイグレーションファイルが生成されていきます。

 

下記コマンドでこれから実行されるクエリの内容を確認することができます。上述したMemberモデルには記述していなかったidカラムが自動的に生成されることも確認できます。

 

 

マイグレーションを実行します。この実行によって実際にモデルをデータベースに反映させることができます。

 

 

 

3. admin.pyを編集する


 

myapp1ディレクトリの中のadmin.pyを下記のように編集します。モデルを追記することによって管理サイトで扱えるようになります。

 

myapp1/admin.py

Memberモデルを追記すると、下記画像のように管理サイトにおいてMYAPP1アプリ名とテーブルが表示され、データを登録できるようになります。

 

 

 

関連ページ

モデルの一覧表示画面を作成する

 

 

参照ページ


 

django ドキュメント

モデル

 

はじめての Django アプリ作成、その2

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー