エンティティのCRUD
6.4 エンティティのCRUD
書籍管理アプリケーション作成を通して、書籍データの一覧表示(Read)について理解できたと思います。ただ、他にも書籍データの新規登録(Create)をしたり、既にあるデータを更新(Update)したり削除(Delete)したりする処理も必要となります。ここでは、実際のアプリケーションは作成しませんが、各機能のポイントとなる処理を押さえておきましょう。
6.4.1 CRUDとは
データベースアクセスの基本は、「Create」「Read」「Update」「Delete」の4つの操作です。これらは各イニシャルをつないで、一般に「CRUD」と呼ばれます。Djangoでは、これら基本的なCRUD処理についてはこれまで同様に簡単に実装することが可能となっています。
6.4.2 登録(Create)
新しくデータを追加するための新規登録処理ですね。後ほど書籍管理アプリケーションで実装方法について再度学習しますが、以下では新規登録の書式について説明していきます。
■書籍データを登録するには
書籍データを登録するための書籍は以下の通りです。
■書式
変数 = Model名(列名①=値,列名②=値,…) 変数.save()
引数には「各列名=設定値」を記載し、その上でsave()メソッドを使用することでデータベースに内容が保存されます。
■記載例
book = Book(isbn=”0006”,title=”python”,price=3000) book.save()
6.4.3 更新(Update)
既に保存してあるデータの更新処理ですね。これは、データの新規登録(Create)と似ていますが、実際の処理は少し違ってきます。まず、既に登録されているデータを取り出す方法を考えないといけませんし、その内容を更新するのはどうするのかも理解しないといけません。引き続き書籍管理アプリケーションを題材に考えていきましょう。
■登録済みの書籍データを1件取り出すには
1件の書籍データを取り出すにはどうしたらよいでしょうか?そうです、キーとなる値「ISBN」を検索して取り出してあげる必要があります。
Modelから特定の列が検索値に該当するレコードを取得するための、書式は以下の通りです。
■書式
Model名.objects.get(列名=検索値)
戻り値として取得したレコードの各列の値が格納されたオブジェクト(テーブル名 object())が格納されます。
そのため以下の記載例の変数bookには、「Book object()」が格納されます。
■記載例
#Bookテーブルのisbnが0001に該当するレコードを取得 book = Book.objects.get(isbn=isbn)
■取り出したレコードを更新するには
取得したレコードの列の値を変更するための書式、記載例は以下の通りです。
■書式
オブジェクト.列名 = 値 オブジェクト名.save()
■記載例
#レコードの値を更新する book.title = “python” book.price = 3333 book.save()
6.4.4 削除(Delete)
最後に、レコードの削除についてです。削除は、単純に先ほどの更新と同じやり方で実装できます。
■登録済みの書籍データを削除するには
先ほどと同様、Modelから特定の列が検索値に該当するレコードを取得し、その戻り値を受け取った変数を介してdelete()メソッドを実行するだけです。
■書式
変数名 = Model名.objects.get(列名=検索値) 変数名.delete
■記載例
book = Book.objects.get(isbn=isbn) book.delete()