Python Django DB関連1
今回はDjangoを使ってDBにアクセスしてみます。デフォルトではSQLiteを使用されます。SQLiteを自分で用意する必要はなく、Djangoに組み込まれています。
環境構築で作成したソースをベースにするので、先にそちらで環境を準備して下さい。
初期処理
以下のコマンドで初期処理を行います。
python manage.py migrate
実行イメージ
スーパーユーザの作成
次に以下のコマンドでスーパーユーザを作成します 。
python manage.py createsuperuser
実行イメージ
管理画面の表示
以下のコマンドでDjangoを起動し、
python manage.py runserver
以下のURLにアクセスし、作成したスーパーユーザでログインします。
http://127.0.0.1:8000/admin/
テーブルの作成
環境構築で作成したアプリケーションのフォルダにmodels.pyファイルがあり、これにテーブル情報を書き込みます。hello/models.py
from django.db import models
# Create your models here.
class Tbl(models.Model):
txt1 = models.CharField(max_length=10)
dt1 = models.DateField()
int1 = models.IntegerField()
環境構築で作成したプロジェクトのフォルダにsettings.pyファイルがあり、この中のINSTALLED_APPSにアプリケーション名称を追加します。
prj/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello',
]
以下のコマンドを実行するとテーブルクラスよりテーブルが作成されます。
python manage.py makemigrations
python manage.py migrate
makemigrationsで実行するSQLのファイルを作成し、
migrateでSQLが実行されます。
上記までの操作で以下のようなテーブルが作成されます。
CREATE TABLE "hello_tbl" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT
, "txt1" varchar (10) NOT NULL
, "dt1" date NOT NULL
, "int1" integer NOT NULL
)
テーブルのキーはidが自動的に追加されキーになります。キーをid以外にしたい場合は、以下のようにキーとする項目にprimary_keyを付けます。
txt1 = models.CharField(primary_key=True, max_length=10)
管理画面に作成テーブルの表示
アプリケーションのフォルダにadmin.pyがあり、これに上記で作成したテーブルクラスを追加します。
hello/admin.py
from django.contrib import admin
# Register your models here.
from hello.models import Tbl
admin.site.register(Tbl)
管理画面に作成したテーブルが表示され、編集できるようになります。
ページのトップへ戻る