Python超初心者講座 / 第14回

Flaskで簡単なWebアプリを作る

Pythonでブラウザに画面を表示する

この回の目的
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=田中 のようにアクセスします。
練習
  1. トップページを作る
  2. 自己紹介ページを作る
  3. HTMLテンプレートを使う
  4. URLのパラメータから名前を受け取って表示する
Flaskを覚えると、Pythonの処理を人が使える画面につなげられます。
理解チェック
前の回へ 次の回へ