カテゴリ: Flask 更新日: 2025/12/12

Flaskでデータを更新・削除する方法!SQLAlchemyの便利な操作を学ぼう

Flaskでデータを更新・削除する方法!SQLAlchemyの便利な操作を学ぼう
Flaskでデータを更新・削除する方法!SQLAlchemyの便利な操作を学ぼう

先生と生徒の会話形式で理解しよう

生徒

「Flaskで保存したデータを変えたり、消したりするにはどうすればいいですか?」

先生

「FlaskではSQLAlchemyと呼ばれる道具を使うことで、プログラムの中で簡単にデータ更新や削除ができるんです」

生徒

「更新と削除って難しそう……専門用語がいっぱいで不安です」

先生

「順を追って説明しますね。更新は 'Update'、削除は 'Delete'、CRUDという基本操作の一部です」

1. CRUDとは?

1. CRUDとは?
1. CRUDとは?

データベースでよく使う基本操作CRUDは、Create(作成)、Read(取得)、Update(更新)、Delete(削除)の頭文字です。

今回はその中のUpdateとDeleteに焦点を当てます。

2. SQLAlchemy(エスキューエルアルケミー)とは?

2. SQLAlchemy(エスキューエルアルケミー)とは?
2. SQLAlchemy(エスキューエルアルケミー)とは?

SQLAlchemyは、Pythonコードだけでデータベースの操作を簡単にできる仕組み(ORMと呼ぶ)です。難しいSQL文を書かなくても大丈夫!

3. 前準備:モデルとデータの例

3. 前準備:モデルとデータの例
3. 前準備:モデルとデータの例

まず、FlaskとSQLAlchemyの準備が済んでいることが前提です。以下は、ユーザー情報を扱うモデルの例です。


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

4. データを更新(Update)してみよう

4. データを更新(Update)してみよう
4. データを更新(Update)してみよう

「Update(アップデート)」とは、保存済みのデータを新しい値に変える操作です。やり方は次の通りです:


@app.route("/update/<int:user_id>", methods=["POST"])
def update_user(user_id):
    user = User.query.get(user_id)
    user.name = request.form.get("name")
    user.email = request.form.get("email")
    db.session.commit()
    return f"ユーザー{user_id}を更新しました!"
  • User.query.get(user_id)は「IDでユーザーを取り出す」
  • user.name = …とすることで「名前を新しい値に変更」
  • db.session.commit()を呼ぶことで変更を保存します

5. データを削除(Delete)してみよう

5. データを削除(Delete)してみよう
5. データを削除(Delete)してみよう

「Delete(デリート)」とは、不要なデータを消す操作です。例えば、以下のように書きます:


@app.route("/delete/<int:user_id>", methods=["POST"])
def delete_user(user_id):
    user = User.query.get(user_id)
    db.session.delete(user)
    db.session.commit()
    return f"ユーザー{user_id}を削除しました!"
  • db.session.delete(user)で削除し、commit()で確定します

6. フォームで更新・削除できるようにしよう

6. フォームで更新・削除できるようにしよう
6. フォームで更新・削除できるようにしよう

ブラウザで操作できるよう、HTMLフォームを用意します。


<form action="/update/1" method="post">
  名前:<input name="name"><br>
  メール:<input name="email"><br>
  <input type="submit" value="更新">
</form>
<form action="/delete/1" method="post">
  <input type="submit" value="削除">
</form>

7. 注意点と失敗しがちなポイント

7. 注意点と失敗しがちなポイント
7. 注意点と失敗しがちなポイント
  • 存在しないIDを指定するとエラーになります。get_or_404()を使うと安全です。
  • フォームで送られてくる値は文字列なので、数値に変える必要がある場合は注意が必要です。
  • commit()を忘れると変更が保存されません

8. SQLAlchemyの便利なポイント

8. SQLAlchemyの便利なポイント
8. SQLAlchemyの便利なポイント

SQLAlchemyでは、UpdateやDeleteの操作がPythonコードだけで簡単に書けます。直感的なコードで、データベースに詳しくなくても扱いやすいのがメリットです。

まとめ

まとめ
まとめ

Flaskでの更新処理と削除処理は、最初は専門的な言葉が多くてとっつきにくく感じるかもしれませんが、実際に手を動かしてみると意外なほど直感的に理解できます。特にSQLAlchemyを使うと、複雑なSQL文を直接書かなくてもよくなり、Pythonらしい表現でデータの変更や削除を細かく操作できるようになります。こうした操作は、Webアプリケーションでは非常に頻繁に利用されるため、初心者のうちにしっかり身につけておくとその後の開発が驚くほどスムーズになります。また、更新や削除を安全に行うためには、存在しないIDに対する処理やフォームから送られてくる値の型の扱いなど、意識しておきたい細かな注意点も多くあります。 こうしたポイントを丁寧に押さえておくことで、後になってアプリの動作が不安定になったり、思わぬエラーに悩まされたりするリスクを減らすことにもつながります。とくに実務や本格的な開発を目指す場合には、データ更新の流れをしっかり理解し、データベースとフォーム入力の橋渡しを正しく扱えるようになることはとても重要です。 今回の記事では、実際のコードとともに更新処理と削除処理の流れをひとつひとつ確認しながら整理しました。実際の開発では、入力チェックや不正アクセス防止のための追加処理など、さらに高度な仕組みも必要になりますが、その入り口として今回の仕組みを理解しておけば、より発展的な内容にも自然と踏み込んでいけるはずです。特に、フォーム入力とルートで受け取る値がどのようにつながっているか、そして取得したオブジェクトのプロパティを変更してコミットするだけで更新が完了するという流れは、Flaskでデータを扱う基本そのものといえます。 更新処理と削除処理は、単純なようでいて実はアプリケーションの本質に深く関わる部分です。データの整合性を守りながら、利用者が安心して使えるアプリを作るためには欠かせない知識です。今回の内容をしっかり自分の中で整理し、サンプルコードを自分の手で書き換えて試してみることで、さらに理解が定着していくでしょう。ひとつひとつの操作がつながって見えるようになると、データベースを使った開発の世界が一気に広がります。

サンプルプログラム(確認用)

振り返りとして、よく使う更新処理の基本構造を以下にまとめておきます。


@app.route("/edit/<int:user_id>", methods=["POST"])
def edit_user(user_id):
    user = User.query.get_or_404(user_id)
    user.name = request.form.get("name")
    user.email = request.form.get("email")
    db.session.commit()
    return "更新が完了しました"

削除処理も同じ流れで、対象となるレコードを取り出して削除し、最後にコミットするという非常にわかりやすい構造になっています。こうした素直な処理の組み合わせが理解できると、次は複雑な条件での検索や、関連テーブルを使った操作など、より広い範囲の機能にも挑戦しやすくなります。まずは基本の流れを自分のアプリに取り入れながら、試行錯誤してみることがおすすめです。

先生と生徒の振り返り会話

生徒

「今日の内容で、更新と削除の流れがだいぶ分かってきた気がします。特にコミットが大切だっていうのが印象に残りました。」

先生

「そうですね。コミットを忘れると実際には何も変わらないので、忘れずに意識することが大事です。変更した値が正しく反映される仕組みを理解しておくと、応用が効くようになりますよ。」

生徒

「削除も思ったより簡単でした。対象を取り出して削除してコミットするだけなんですね。」

先生

「その通りです。シンプルな構造ですが、安全に扱うためにIDのチェックやエラー処理をきちんと整えると実際の開発でも使いやすくなります。」

生徒

「次はもっと複雑な条件検索とか、関連テーブルの更新にも挑戦してみたいです!」

先生

「いいですね。まず今回の基本をしっかり身につけることが、その先のステップにつながりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Flaskでデータベースのデータを更新(Update)するにはどうすればいいですか?

Flaskでデータを更新するには、SQLAlchemyを使って対象のデータを取得し、値を変更してからdb.session.commit()で保存します。これにより、保存済みのデータが新しい内容に書き換えられます。
カテゴリの一覧へ
新着記事
New1
Flask
FlaskでCSRF対策を実装する方法!安全なフォーム送信を学ぼう
New2
Python
Pythonの文字列型(str)を完全解説!連結・分割・検索の方法を紹介
New3
Python
Pythonで日付文字列から曜日を取得する方法を完全ガイド!初心者でもわかる日時処理入門
New4
Flask
FlaskアプリのSSL設定方法をやさしく解説!初心者でもわかるHTTPS対応の手順
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
No.4
Java&Spring記事人気No4
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.5
Java&Spring記事人気No5
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.6
Java&Spring記事人気No6
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.7
Java&Spring記事人気No7
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策