✏️
【Flask入門】Flaskでフォームを作って入力を受け取るまで(コード解説編)
【Flask入門】Flaskでフォームを作って入力を受け取るまで(コード解説編)
前回の記事では「「Flask入門】Flaskでフォームを作って入力を受け取るまで」でフォームから入力を送信できるところまで作りました。
今回はそのコードを1行ずつ解説していきます。
app.py
の解説
from flask import Flask, request, render_template
flask
ライブラリから必要な機能をインポートしています。
-
Flask
: アプリ本体を作るためのクラス -
request
: フォームなどから送られたデータを受け取るためのオブジェクト -
render_template
: HTMLファイルを表示するための関数
app = Flask(__name__)
Flask
クラスを使ってアプリの本体 (app
) を作成しています。
__name__
は Python の特殊変数で、現在のファイルがアプリの「入口」であることを Flask
に伝えています。
@app.route("/")
def index():
return render_template("index.html")
-
@app.route("/")
: この関数に「URL / にアクセスしたときの処理」を登録する、という意味。 -
index()
: / にアクセスされたときに呼ばれる関数。 -
render_template("index.html")
: templates/index.html を呼び出して画面に表示する。
👉 これで「トップページにアクセスすると index.html が表示される」仕組みになっています。
@app.route("/submit", methods=["POST"])
def submit():
log = request.form["log"]
return f"受け取りました: {log}"
-
@app.route("/submit", methods=["POST"])
:-
/submit
というURLにアクセスされたときの処理を登録。 -
methods=["POST"]
は「フォーム送信時のPOST
リクエストを受け付ける」指定。
-
-
request.form["log"]
:- HTMLフォームの
<input name="log">
に入力された文字を取り出す。
- HTMLフォームの
-
return f"受け取りました: {log}"
:入力された内容を画面に返す。- f"文字列{変数}" は f文字列(フォーマット文字列)というPythonの書き方。
if __name__ == "__main__":
app.run(debug=True)
- このファイルが直接実行された場合にアプリを起動する、という意味。
-
app.run(debug=True)
: Flaskの開発用サーバを起動。debug=True
を付けるとコードを直すたびに自動でリロードされる。
index.html
の解説
<h1>Hello, 学習ログ!</h1>
<form action="/submit" method="post">
<input type="text" name="log" placeholder="今日の学習ログ">
<button type="submit">送信</button>
</form>
-
<form action="/submit" method="post">
:- 入力内容を /submit に送信(POSTリクエスト)するフォーム。
-
<input type="text" name="log">
:- テキスト入力欄。
-
name="log"
がサーバ側(Python)でデータを受け取るときのキーになる。
-
<button type="submit">送信</button>
:- 送信ボタンを押すとフォームの内容がサーバに送られる。
まとめ
ここまでで、Flask アプリのコードが「どう動いているか」を理解できました。
-
@app.route
でURLごとの処理を登録する -
render_template
でHTMLを表示する -
request.form
でフォームから送信されたデータを受け取る
次のステップ
ここまでで「フォームに入力した内容を受け取る」基本の流れができました。
次は、入力内容をファイルやデータベースに保存して「学習ログアプリ」として形にしていきます!
Discussion