使用Django的管理界面来管理应用程序的数据库
简要概述
-
- Docker-composoe + Django環境で作業環境を整えます。
-
- Djangoは専用の管理画面からデータベースの操作(作成や編集など)が行えます。
つまりPHPMyAdminなどが不要!!
环境
-
- Docker + Docker-compose が利用できること。
-
- Python3.6
- Django3.1(最新)
前提 tí)
Docker-compose + Django + MySQL + Nginx + uwsgi を使った環境の初期設定 が完了していること
djangoが起動中である
データベースへアクセスできる
管理画面へアクセスできる
または、同等の環境であること
操作步骤
创建应用程序
-
- アプリケーションの作成
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名
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を編集する
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を編集する
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://:8000/admin