[TIL] # 24 Django mysql


データの追加、削除


Django Shellとmysqlでいろいろな内容を追加、削除、変更して、ついでに復習を書きます.

まず事前に練習するためにいくつかのデータを置いた.

mysql、ormを使用して追加、削除


メニューの追加


最高級メニューを追加しましょう
delete from drinks_menu where id=1;
コマンドを使用して削除し、再作成します.
Django shell
Menu.objects.create(name = "음료")
入力後にその様子が表示されると、1ではなく3に再追加されるのが見えます.

初期化したい場合は
TRUNCATE table_name
削除を入力して再作成すればよい
同じように、全部で4つのメニューが追加されました.

カテゴリの追加


メニューがForeignKeyに関連付けられているcategoryの場合:
追加するときに考慮しなければならないことがあります.
メニューに関連付け(menu idを使用して複数のカテゴリを作成)
生成したカテゴリがどのメニューに属するかを決定する必要があります.

私たちは冷たいブルーを作るからです.
まずメニュー名を持ってきて、それからメニューが何なのか決めます.
mysqlのチェック

categoryテーブルにはmenu idが3で、Cold Blueという名前の列が追加されています.
私は同じ方法ですべてを創造します.

idでメニュータブを取得し、各タブがどのメニューに含まれているかを決定します.
そして、どのようなカテゴリを作成するかを考えることができます.

ドリンク


カテゴリを作成する方法と同じです
違うのは、飲み物はcategory idを持ってきて作ります.
作成する飲み物のカテゴリidを知る必要があります.

bulk_create


bulk createを使用して一度に作成することもできます
Drink.objects.bulk_create([Drink(korean_name = "바닐라 크림 콜드브루", category = get_coldbrew), Drink(korean_name = "망고 패션 후르츠 블렌디드", category = get_blended), Drink(korean_name = "딸기 요거트 블렌디드", category = get_blended)]) 
コマンドを入力して作成すると

このようにblankを無視して値を生成します
残りも全部作ってあげます.

各カテゴリーに飲み物とパンが2つ入っていて、
次はManytomy関係アレルギーです

アレルギー


多対多の関係の場合は少し違います
中間表が重要なので、アレルギーの名前を付けた後
アレルギーの名前に合うコーヒーを一杯ください.

# 대두 알러지를 가지고 옴
bean = Allergy.objects.get(id = 1)

# 콩 알러지에 Drink id가 1인 음료를 추가 
bean.drink.add(Drink.objects.get(id = 1)

アレルギーと経口液の身分を持つ表が作成されます.
私はずっとやります.


私はあなたにこんなにたくさん作ってあげました.、アレルギーidを基準に並べ替えました.
ORDER BY 정렬할 컬럼 
並べ替えられたテーブルをコマンドでチェックしてスキップします.

image


イメージは一対多の方法のようです.

save()メソッドを使用して作成


フェイルオーバマネージャを使用してcreate()メソッドを使用できます.
クラスが独自に存在するsaveメソッド
models.モデルの定義に入ります.

あるいは長い公式文書の中で.
https://docs.djangoproject.com/en/3.1/ref/models/instances/
確認できます.
私はあなたが通常save方法を持ってそれを過度に使用することを知っています.
saveメソッドを使用して作成する方法

このような結果を確認したら

mysqlで確認すると追加が確認できます
障害モデルの作成と削除方法について
ありがとうございます.😁