【初心者向け】Flask入門|PythonでWebアプリを作る最速の第一歩!

python

「PythonでWebアプリってどうやって作るの?」
「Djangoって聞いたけど難しそう…」
「まずは簡単なものから始めたい」

そんな方におすすめなのが、軽量で学習コストが低く、すぐに動かせるフレームワーク「Flask(フラスク)」です。

この記事では、Flaskとは何か?から始まり、インストール、基本的なアプリの作成、HTMLテンプレート連携、APIの作成まで、実例付きで分かりやすく解説します!

スポンサーリンク

Flaskとは?何ができるの?

Flask(フラスク)って何?

Flaskは、Pythonで書かれた軽量Webフレームワークです。

フレームワークとは、アプリを作るための「設計図」や「部品セット」のようなもの。

Flaskを使えば、複雑なWebの仕組みを意識しなくても、簡単にWebアプリが作れます。

「小さく始めて、大きく育てる」がコンセプトで、必要な機能だけを取り入れられる柔軟性が特徴です。

Flaskでできること

機能難易度
簡単なWebページの表示ブログサイト、企業サイト★☆☆
フォームの入力受付と処理お問い合わせフォーム、アンケート★★☆
データベースとの連携会員管理、商品管理★★☆
REST APIの作成スマホアプリとの連携★★★
ログイン認証の実装会員制サイト★★★

なぜFlaskがおすすめ?

  • 覚えることが少ない:基本的なことだけ覚えれば動く
  • すぐ始められる:インストールして5分で動くアプリが作れる
  • 後から拡張できる:最初は簡単に、必要に応じて機能追加
  • 情報が豊富:ネット上にたくさんの情報がある

Flaskのインストールと準備

インストール方法

まずはFlaskをインストールしましょう。

# 最も簡単な方法
pip install flask

仮想環境を使った安全なインストール(推奨)

# 仮想環境を作成
python -m venv flask_env

# 仮想環境を有効化
# Windowsの場合
flask_env\Scripts\activate
# Mac・Linuxの場合
source flask_env/bin/activate

# Flaskをインストール
pip install flask

仮想環境って何? 他のプロジェクトに影響を与えずに、このプロジェクト専用のPython環境を作る仕組みです。

インストール確認

# バージョンを確認
python -m flask --version

バージョン情報が表示されれば、インストール成功です!

最初のFlaskアプリを作ってみよう

超シンプルなWebアプリを作る

hello.pyというファイルを作って、以下のコードを入力してください。

# Flaskを使うための準備
from flask import Flask

# Flaskアプリを作成
app = Flask(__name__)

# ホームページ(/)にアクセスされたときの処理
@app.route("/")
def hello():
    return "こんにちは、Flask!"

# このファイルを直接実行したときだけWebサーバーを起動
if __name__ == "__main__":
    app.run(debug=True)

実行してみよう

python hello.py

成功すると、こんなメッセージが表示されます:

* Running on http://127.0.0.1:5000

ブラウザでhttp://127.0.0.1:5000を開くと、「こんにちは、Flask!」と表示されます。

コードの説明

部分役割
from flask import FlaskFlaskを使えるようにする
app = Flask(__name__)Flaskアプリを作る
@app.route("/")どのURLで表示するかを指定
def hello():そのURLにアクセスされたときの処理
app.run(debug=True)Webサーバーを起動

HTMLテンプレートと連携してページを作る

フォルダ構成を作る

project/
├── app.py
└── templates/
    └── index.html

templatesフォルダを作って、その中にHTMLファイルを入れます。

app.pyのコード

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    # HTMLテンプレートを表示
    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 App</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; }
    </style>
</head>
<body>
    <h1>ようこそ、Flaskの世界へ!</h1>
    <p>これは私の最初のFlaskアプリです。</p>
</body>
</html>

動的な内容を表示してみよう

from flask import Flask, render_template
import datetime

app = Flask(__name__)

@app.route("/")
def index():
    # 現在の時刻を取得
    now = datetime.datetime.now()
    return render_template("index.html", current_time=now)
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>Flask App</title>
</head>
<body>
    <h1>ようこそ、Flaskの世界へ!</h1>
    <p>現在の時刻:{{ current_time }}</p>
</body>
</html>

{{ current_time }}の部分に、Pythonで渡した時刻が表示されます。

FlaskでAPIを作ってみよう

API(Application Programming Interface)は、他のプログラムがデータを取得するための窓口です。

簡単なAPIエンドポイントを作る

from flask import Flask, jsonify

app = Flask(__name__)

# 通常のWebページ
@app.route("/")
def index():
    return "Flask API サーバー"

# APIエンドポイント
@app.route("/api/data")
def api_data():
    data = {
        "name": "Flask",
        "version": "2.3",
        "status": "動作中"
    }
    return jsonify(data)

# ユーザー情報のAPI
@app.route("/api/users")
def api_users():
    users = [
        {"id": 1, "name": "田中太郎"},
        {"id": 2, "name": "佐藤花子"},
        {"id": 3, "name": "鈴木次郎"}
    ]
    return jsonify(users)

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

APIの確認方法

  • http://127.0.0.1:5000/api/dataにアクセス
  • JSON形式でデータが表示される
{
  "name": "Flask",
  "status": "動作中",
  "version": "2.3"
}

よく使うFlaskの機能・拡張

基本機能

機能用途使い方例
requestフォームやパラメータの取得request.form['name']
redirect他のページへ移動redirect('/login')
url_forURL生成url_for('index')
flashメッセージ表示flash('保存しました')
sessionセッション管理session['user_id'] = 1

便利な拡張ライブラリ

ライブラリ用途インストール
Flask-SQLAlchemyデータベース連携pip install flask-sqlalchemy
Flask-Loginログイン機能pip install flask-login
Flask-WTFフォーム処理pip install flask-wtf

実践的な例:簡単な掲示板を作ってみよう

from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)

# 投稿を保存するリスト(本来はデータベースを使用)
posts = []

@app.route("/")
def index():
    return render_template("index.html", posts=posts)

@app.route("/post", methods=["GET", "POST"])
def post():
    if request.method == "POST":
        # フォームからデータを取得
        name = request.form["name"]
        message = request.form["message"]
        
        # 投稿をリストに追加
        posts.append({"name": name, "message": message})
        
        # ホームページにリダイレクト
        return redirect(url_for("index"))
    
    return render_template("post.html")

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

まとめ:Flaskは「PythonでWebを始めるなら、まずこれ!」

重要なポイント

  • Flaskは軽量かつ柔軟なPython用Webフレームワーク
  • pip install flaskと数行のコードですぐWebアプリが作れる
  • HTMLテンプレートやJSON APIとの連携も簡単
  • 必要な機能を後から追加できるモジュール設計

学習の順番

  1. 基本的なアプリ作成:Hello World から始める
  2. HTMLテンプレート:見た目のあるページを作る
  3. フォーム処理:ユーザーからの入力を受け取る
  4. データベース連携:データを永続化する
  5. API作成:他のアプリとの連携

コメント

タイトルとURLをコピーしました