Flaskを使うと、Pythonで簡単なWebアプリを作れます。 ブラウザで開く画面、入力フォーム、検索、登録、管理画面などの入口になります。
Flaskとは何か
Flaskは、Pythonの軽量なWebアプリケーションフレームワークです。 小さなアプリから始めやすく、初心者がWebの仕組みを理解するのに向いています。python -m pip install flask
最小アプリ
app.py を作ります。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "こんにちは、Flask"
if __name__ == "__main__":
app.run(debug=True)
実行します。
python app.py
ブラウザで http://127.0.0.1:5000 を開きます。
ルートとは何か
@app.route("/") は、URLと処理を結びつける指定です。
/ はトップページを意味します。
別のページを作る場合は、次のようにします。
@app.route("/about")
def about():
return "このサイトについて"
HTMLを返す
文字だけでなくHTMLも返せます。@app.route("/")
def index():
return "<h1>Flask入門</h1><p>HTMLを返しています</p>"
ただし、本格的にはテンプレートファイルを使います。
templatesを使う
フォルダ構成:flask_sample/
app.py
templates/
index.html
app.py:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
if __name__ == "__main__":
app.run(debug=True)
templates/index.html:
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Flask入門</title>
</head>
<body>
<h1>Flaskで表示しています</h1>
</body>
</html>
フォームの入口
Webアプリでは、ユーザーから入力を受け取ることが重要です。 Flaskではrequest を使います。
from flask import Flask, request
app = Flask(__name__)
@app.route("/hello")
def hello():
name = request.args.get("name", "ゲスト")
return f"{name}さん、こんにちは"
/hello?name=田中 のようにアクセスします。
- トップページを作る
- 自己紹介ページを作る
- HTMLテンプレートを使う
- URLのパラメータから名前を受け取って表示する
理解チェック
- この回の目的を一文で説明できる
- サンプルコードを自分のPCで実行できる
- エラーが出た場合、どの行で起きたか確認できる
- 少しだけ値や文字を変えて、結果の違いを確認できる