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

Flaskでデータを追加・取得する基本のやり方!超初心者向けにわかりやすくCRUDを体験しよう

Flaskでデータを追加・取得する基本のやり方!CRUDの最初の一歩
Flaskでデータを追加・取得する基本のやり方!CRUDの最初の一歩

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

生徒

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

先生

「Flaskでは、フォームなどを使って入力されたデータを、Pythonのプログラムの中で受け取って、保存したり表示したりすることができます。」

生徒

「保存っていうのは、どこに保存されるんですか?そしてどうやって取り出すんですか?」

先生

「今回は簡単な例として、プログラムの中にデータを一時的に保存して、表示する方法をやってみましょう。まずは『データの追加』と『取得(表示)』から始めます。」

1. Flaskとは?

1. Flaskとは?
1. Flaskとは?

Flask(フラスク)は、Python(パイソン)というプログラミング言語を使って、ホームページやWebアプリを作るための道具(フレームワーク)です。

とてもシンプルで、初心者にも扱いやすいのが特長です。「フラスコ」のように軽くて中身を自由に詰められるイメージから名付けられました。

2. CRUDってなに?

2. CRUDってなに?
2. CRUDってなに?

CRUD(クラッド)とは、データを扱うときの基本の4つの操作のことです。

  • C:Create(作る・追加する)
  • R:Read(読む・表示する)
  • U:Update(更新する)
  • D:Delete(削除する)

今回はこの中で、初心者でもわかりやすい「Create(追加)」と「Read(表示)」を中心に学びます。

3. Flaskで最もシンプルなWebアプリを書いてみよう

3. Flaskで最もシンプルなWebアプリを書いてみよう
3. Flaskで最もシンプルなWebアプリを書いてみよう

まずは、Flaskを使って「こんにちは」と表示するだけの基本プログラムを作ってみます。


from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "こんにちは!これはFlaskの最初の一歩です"

if __name__ == "__main__":
    app.run(debug=True)

@app.route("/") は「ホームページを表示するための入口」と考えてください。

4. データを追加(Create)してみよう

4. データを追加(Create)してみよう
4. データを追加(Create)してみよう

次は、ユーザーが入力した名前を受け取って、保存してみましょう。POSTという仕組みを使います。

POST(ポスト)とは、Webページから送られた情報を受け取る方法のことです。手紙をポストに入れるようなイメージです。


from flask import Flask, request

app = Flask(__name__)
data_list = []

@app.route("/add", methods=["POST"])
def add_data():
    name = request.form.get("name")
    data_list.append(name)
    return f"{name} を追加しました!"

request.form.get("name") は、フォームから送られてきた「name」という名前のデータを受け取ります。

data_list.append(name) で、受け取った名前をリストに追加しています。

5. データを表示(Read)してみよう

5. データを表示(Read)してみよう
5. データを表示(Read)してみよう

次は、今まで追加された名前をすべて表示するページを作ってみましょう。


@app.route("/list")
def list_data():
    return "<br>".join(data_list)

"<br>" で区切ることで、ブラウザ上で1行ずつ表示されます。

6. HTMLフォームで名前を入力してみよう

6. HTMLフォームで名前を入力してみよう
6. HTMLフォームで名前を入力してみよう

次は、実際にブラウザから名前を入力する画面を作ってみましょう。HTML(エイチ・ティー・エム・エル)という言語で書きます。


@app.route("/")
def form():
    return '''
    <form action="/add" method="post">
        名前を入力してください:<input type="text" name="name">
        <input type="submit" value="追加">
    </form>
    '''

このフォームでは、名前を入力して「追加」ボタンを押すと、/add にデータが送られます。

7. 完成したサンプルコード

7. 完成したサンプルコード
7. 完成したサンプルコード

ここまでのコードをすべてまとめると、以下のようになります。これを「app.py」という名前で保存して、実行してみましょう。


from flask import Flask, request

app = Flask(__name__)
data_list = []

@app.route("/")
def form():
    return '''
    <form action="/add" method="post">
        名前を入力してください:<input type="text" name="name">
        <input type="submit" value="追加">
    </form>
    <br>
    <a href="/list">追加した名前を見る</a>
    '''

@app.route("/add", methods=["POST"])
def add_data():
    name = request.form.get("name")
    data_list.append(name)
    return f"{name} を追加しました!<br><a href='/'>戻る</a>"

@app.route("/list")
def list_data():
    return "<br>".join(data_list)

このサンプルでは、名前を入力して追加し、そのあとで一覧で確認することができます。

8. Flaskのルート(@app.route)とは?

8. Flaskのルート(@app.route)とは?
8. Flaskのルート(@app.route)とは?

Flaskでは、@app.route という書き方を使って「どのURLでどの関数を動かすか」を指定します。たとえば:

  • @app.route("/") → ホームページ
  • @app.route("/add") → データ追加ページ
  • @app.route("/list") → データ表示ページ

このように、URLごとに処理を分けることができるのがFlaskの便利なところです。

9. データはどこに保存されているの?

9. データはどこに保存されているの?
9. データはどこに保存されているの?

今回のサンプルでは、名前をdata_listという「リスト」に保存しています。これはPythonの中だけで一時的に使える入れ物です。

プログラムを終了するとデータは消えてしまいますが、初心者の学習にはぴったりの方法です。

将来的には、データベースというもっと本格的な保存場所を使いますが、今は「プログラムの中に入れている」と覚えておけば大丈夫です。

まとめ

まとめ
まとめ

Flaskを使ったデータ追加と取得の仕組みは、Webアプリを作るうえで特に重要な基礎であり、今回の学習を通して「ユーザーが入力した情報をどう扱うか」という流れをしっかり理解できました。とくに、フォームからデータを受け取り、Pythonのコード内で処理し、それを画面に表示するという一連の動作は、多くのWebサービスで必ず使われています。今回の取り組みでは、初心者でも取り組みやすいようにデータベースではなくPythonのリストに保存する仕組みを用い、Flaskでの基本的なルート設計、CRUDの最初の二つである「Create」と「Read」の動作を自然に体験できました。 また、Flaskの構造はとてもシンプルで、@app.routeを使ってURLと関数を紐づけるだけでページを増やすことができます。そのため、小さなアプリケーションから始めて徐々に機能を増やしていくやり方がおすすめです。ユーザーが入力した情報をrequest.formで受け取る流れは、フォームを扱う際の基本であり、今後ログイン機能や投稿機能などを作る際にも広く応用できます。こうした基礎を丁寧に押さえておくことで、より複雑なアプリケーションを作るときにもスムーズに発展させられます。 今回の内容をまとめるために、学習で扱った仕組みをひとつにまとめたサンプルコードを以下に用意しました。すでに学んだCREATEとREADを中心に、HTMLフォームの返却やルーティングがどのように連動しているかが確認できる構成になっています。繰り返し実行しながら動作を確かめると、Flaskアプリの内部でどのようにデータが流れているかより明確に把握できます。

今回の学びをまとめたサンプルプログラム


from flask import Flask, request

app = Flask(__name__)
data_list = []

@app.route("/")
def input_form():
    return '''
    <form action="/add" method="post">
        おなまえを入力してください:<input type="text" name="name">
        <input type="submit" value="追加">
    </form>
    <br>
    <a href="/show">登録したなまえを見る</a>
    '''

@app.route("/add", methods=["POST"])
def add():
    name = request.form.get("name")
    if name:
        data_list.append(name)
    return f"{name} を追加しました!<br><a href='/'>戻る</a>"

@app.route("/show")
def show():
    return "<br>".join(data_list)

if __name__ == "__main__":
    app.run(debug=True)

上記のサンプルでは、フォームを表示するルート、データを受け取って追加するルート、追加されたデータを一覧で確認するルートの三つを使用しています。この構成はFlaskアプリの基本形として非常に使いやすく、名前の代わりにメッセージやタイトル、メモなど別の値を扱えば、簡単な掲示板やメモ帳アプリに応用できます。初心者のうちにこの流れを繰り返し学ぶことで、「データがどこから来て、どう保存され、どう表示されているか」という感覚をつかむことができ、今後の学習がよりスムーズになります。 さらに、今回のようにリストへ保存するやり方は、学習段階では扱いやすく直感的ですが、実際のWebサービスではデータベースを用いて「長期間の保存」「大量のデータ管理」「検索や並べ替えの便利さ」などを実現します。しかし、基礎を理解していない状態で急にデータベースを使うと混乱しやすいため、今回のようなステップは非常に効果的です。初心者がWebアプリ制作に慣れていくには、「まずはリストで動く仕組みを理解し、その後データベースに移行する」という流れが最も自然で確実な進め方です。 また、HTMLフォームでデータを送信する流れは、画面遷移やPOSTリクエストの仕組みを知る大切な機会になり、ブラウザからサーバーへ情報がどう届くのかを体験できます。これらをひとつひとつ学びながら進めていくことで、Flaskを使ったCRUDアプリケーションをより本格的に構築できるようになるでしょう。これから先、「更新(Update)」「削除(Delete)」にも挑戦することで、CRUD操作がすべて理解でき、より自信を持ってアプリ作りができるようになります。

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

生徒

「きょうの学習で、フォームから送られたデータをPythonで受け取って保存する流れがよく分かりました。思っていたより簡単でした!」

先生

「それは良かったです。まずはCreateとReadをしっかり理解することが大切ですよ。データの流れが分かれば、もっと複雑なアプリにも挑戦できます。」

生徒

「@app.routeがページごとに役割を分けているのも分かりやすかったです。どのURLで何が動くのかが見えてきました。」

先生

「その理解はとても大事です。小さなアプリでもルートが増えてくると混乱しがちなので、URLと処理を整理しながら作る癖をつけておくと良いですよ。」

生徒

「次はデータベースを使った保存もやってみたいです。もっとしっかり残せる仕組みも学んでみたいです!」

先生

「とても良い流れですね。今回の基礎が理解できていれば、データベースもスムーズに扱えるようになりますよ。」

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

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

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

Flaskとはどんなフレームワークですか?初心者におすすめの理由は?

FlaskとはPythonでWebアプリを作るための軽量フレームワークです。シンプルな構造で学びやすく、コードの量も少なく済むため、プログラミング初心者にとって扱いやすいのが特長です。
カテゴリの一覧へ
新着記事
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
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.4
Java&Spring記事人気No4
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
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の設定方法を完全ガイド!初心者でもわかるセキュリティ対策