LoginSignup
0
3

More than 3 years have passed since last update.

【2】Django の管理画面からアプリケーションのデータベース管理をする

Last updated at Posted at 2021-01-22

概要

  • Docker-composoe + Django環境で作業環境を整えます。
  • Djangoは専用の管理画面からデータベースの操作(作成や編集など)が行えます。
    • つまりPHPMyAdminなどが不要!!

環境

  • Docker + Docker-compose が利用できること。
  • Python3.6
  • Django3.1(最新)

前提

手順

アプリケーションの作成

  • アプリケーションの作成
    • django: Dockerコンテナ名
    • sample: アプリケーション名
$ docker-compose exec django python3 manage.py startapp sample

コンフィグの修正

  • src/app/settings.pyを編集する
    • INSTALLED_APPS に作成したアプリケーションを追加する
      • sample: フォルダ名
      • SampleConfig: src/app/sample/apps.py に書いてあるclass
src/app/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'sample.apps.SampleConfig',         # 追加
]

モデルの作成

  • src/app/sample/models.pyを編集する
src/app/sample/models.py
from django.db import models


class Test1(models.Model):
    class Meta:
        verbose_name_plural = "テスト1"

    test1_name = models.CharField("テスト名",max_length=25)
    test1_value = models.CharField("テスト値",max_length=25)
    def __str__(self):
        return self.test1_name


class Test2(models.Model):
    class Meta:
        verbose_name_plural = "テスト2"

    test1= models.ForeignKey(Test1, on_delete=models.PROTECT)
    test2_name = models.CharField("テスト名",max_length=25)
    test2_value = models.CharField("テスト値",max_length=25)
    def __str__(self):
        return self.test2_name

管理画面の設定

  • src/app/sample/admin.pyを編集する
src/app/sample/admin.py
from django.contrib import admin

# Register your models here.

from sample.models import Test1, Test2
admin.site.register(Test1)
admin.site.register(Test2)

マイグレーション

  • マイグレーションファイルを作成して実行
$ docker-compose exec django ./manage.py makemigrations
$ docker-compose exec django ./manage.py migrate

確認

  • 下記へログインするとモデルで作成したデータベースが操作できる
    • http://<IP>:8000/admin
0
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3