• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / djangoのmodels.pyの記述、マイグレーション、管理画面での操作

djangoのmodels.pyの記述、マイグレーション、管理画面での操作

1 models.pyの定義方法
2 python manage.py migrate,python manage.py makemigrationsの実行によるマイグレーション
3 管理画面でモデルの利用
4 関連記事

models.pyの定義方法

モデルとは、DBの各テーブルとのアクセスをする際に用いられるクラスで、djanogではmodels.pyにモデルの定義を記載する。

  • models.pyでモデルを定義する
from django.db import models

class Topic(models.Model): #Topicモデル
    top_name = models.CharField(max_length=264, unique=True) #top_nameプロパティは最大264文字でユニークの文字列

    def __str__(self):
        return self.top_name

class Webpage(models.Model): # Webpageモデル
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE) # Topicモデルへの外部キー、CASCADEにしているため、Topicの参照先が削除されると参照されているレコードが強制的に削除される
    name = models.CharField(max_length=264, unique=True) # nameプロパティは最大264文字でユニークの文字列
    url = models.URLField(unique=True) # urlプロパティはURLの文字列

    def __str__(self):
        return self.name

class AccessRecord(models.Model): # AccessRecordモデル
    webpage= models.ForeignKey(Webpage, on_delete=models.CASCADE) # Webpageモデルへの外部キー
    date = models.DateField() # dateはDate型

    def __str__(self):
        return str(self.date)

python manage.py migrate,python manage.py makemigrationsの実行によるマイグレーション

models.pyを設定したら

  1. python manage.py migrate
  2. python manage.py makemigrations アプリケーション名
  3. python manage.py migrate

アプリケーション名にはmodels.pyを更新したアプリケーション名を入れる

を順に実行する。

(2回目以降は、python manage.py makemigrations アプリケーション名、python manage.py migrateだけでよい)
1. python manage.py migrateでsettings.pyの設定に従ってのDB作成、初期のテーブルをDB内に作成する。
2. python manage.py makemigrations models.pyを更新したアプリケーション名で、アプリケーションのmodels.pyの記載に沿ったモデルをDBに作成するためのファイルが出力される。

3. python migrateを行うことで、出力されたファイルの内容がDBに反映されてテーブルが作成される。

管理画面でモデルの利用

作成したモデルを管理画面で挿入、更新、参照できるようにするには、アプリケーションのadmin.pyに以下のように記載する。

  • admin.pyへの記述
from django.contrib import admin
from firstapp.models import AccessRecord,Topic,Webpage # モデルのインポート

admin.site.register(AccessRecord)
admin.site.register(Topic)
admin.site.register(Webpage) # 管理画面に、モデルAccessRecord,Topic,Webpageを追加

次に管理用のスーパーユーザーを作成する。

python manage.py createsuperuser

デフォルトでは、http://{url}/adminで管理画面にアクセスできる。

1.ログイン画面

2.初期画面

  • 上のAUTHENTICATIONでは、管理画面利用ユーザの作成
  • 下はそれぞれアプリのテーブルへデータを挿入・削除・変更することができる

以上、モデルの作成と管理画面でのモデルの操作でした。

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 models.pyの定義方法
2 python manage.py migrate,python manage.py makemigrationsの実行によるマイグレーション
3 管理画面でモデルの利用
4 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約