🏮

🔥 Python Flask入門:はじめてのWebアプリ開発

に公開

📝 はじめに

PythonでWebアプリを作ってみたいと思ったとき、最初にぶつかる壁は「何から始めればいいのか」ということです。Flaskは、そんなPythonユーザーにぴったりの、軽量で使いやすいWebフレームワークです。このガイドでは、Flaskの基本的な仕組みから簡単なアプリの作り方、テンプレートの使い方、そしてつまずきやすいポイントとその対処法まで、初心者向けにやさしく解説します。

✅ Flaskとは?

Flask(フラスク)は、Pythonで使える軽量なWebフレームワークです。とてもシンプルで、必要な機能だけを自由に追加できるのが特徴です。

  • 必要最低限の構成で動作する「マイクロフレームワーク」
  • 小規模なアプリから中規模なAPIサーバーまで対応可能
  • 学習コストが低く、初心者に人気

他のフレームワークに比べて、コード量が少なくて済むため、学びながらすぐに動かして試すことができます。また、Flaskはコミュニティが活発で、ドキュメントも豊富なので、つまずいても情報を見つけやすいのも魅力です。
Pythonの標準ライブラリや他の外部パッケージとの相性も良いため、カスタマイズ性が高く、自由に設計できる点も大きなメリットです。

✅ Flaskが向いている人

  • Pythonの基本文法を学んだ後、Webアプリを作ってみたい人
  • HTMLやCSSとPythonを組み合わせて、簡単なWebページを作りたい人
  • 軽量なAPIをすばやく作りたい人
  • Webフレームワークの基礎を学んでから、Djangoなどへステップアップしたい人
  • 自由な設計でWebサービスを構築したい人

Flaskは柔軟性が高いため、最初はシンプルに始めて、必要に応じて機能を追加していくスタイルが合う方におすすめです。

📦 Flaskのインストール方法

Flaskは pip を使って簡単にインストールできます。

pip install flask

インストール前に仮想環境を作ると、プロジェクトごとにライブラリを分けられて便利です。

python -m venv venv
source venv/bin/activate  # Windowsでは venv\Scripts\activate
pip install flask

仮想環境を使えば、複数のプロジェクトで異なるライブラリのバージョンを使っても互いに干渉しません。
インストール後、flask --version を実行して、Flaskが正しくインストールされているか確認しましょう。トラブルがあった場合は、pip list でインストール済みパッケージを確認できます。

🚀 Flaskの基本構成

Flaskは1ファイルでも動作します。以下が最小のアプリの例です。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask!'

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

🔍 解説

  • Flask(name):アプリ本体を作成
  • @app.route('/'):この関数がアクセスされたときに表示するURLパス(ここでは「/」)
  • app.run():サーバーを起動

このコードを app.py という名前で保存し、以下のように実行します。

python app.py

すると、http://localhost:5000 にアクセスすると「Hello, Flask!」と表示されます。
Flaskアプリはコードの構成が自由なので、小さなスクリプトで始めて、必要に応じて構造を整理していくことができます。また、複数のルーティングを簡単に追加できるため、機能を増やしながら学習できます。

🛠 HTMLテンプレートを使う

Flaskではテンプレートエンジン「Jinja2」を使って、Pythonの値をHTMLに埋め込むことができます。
まず、Flaskは特定の構成でファイルを配置することが推奨されています。その基本形は以下のとおりです:

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

このようにしておくと、Flaskが自動でテンプレートを探してくれます。テンプレートファイルはtemplatesという名前のフォルダ内に保存する必要があります。

✅ HTMLテンプレートの例

templates/index.html の中身:

<!DOCTYPE html>
<html>
<head><title>Flask Sample</title></head>
<body>
  <h1>Hello, {{ name }}!</h1>
  <p>Flaskのテンプレートから表示しています。</p>
</body>
</html>

✅ Pythonコードでの呼び出し

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html', name='Flask Beginner')

render_template 関数は、テンプレートフォルダ内のHTMLを読み込み、Pythonの値を埋め込んで表示してくれます。変数 name の値が {{ name }} に差し込まれます。

🧪 よくあるトラブルと対処法

  • Flaskアプリが表示されない

    • app.run(debug=True) を書き忘れていないか確認
    • ブラウザで http://127.0.0.1:5000 にアクセスしているか?
    • ポートが既に使用されていないか確認(OSError: [Errno 98] Address already in use など)
  • テンプレートが読み込まれない

    • templates フォルダ名は正しいか?(typo注意)
    • HTMLファイルの拡張子が .html になっているか?
    • render_template() の引数のファイル名が正しいか?
  • Flaskコマンドが使えない

    • 仮想環境が有効になっているか確認(source venv/bin/activate)
    • pip install flask が成功しているか確認

🎯 まとめ

Flaskはシンプルで自由度が高く、初心者でも始めやすいWebフレームワークです。

  • 最小構成で簡単にWebアプリが作れる
  • HTMLテンプレートとの連携もスムーズ
  • コード量が少なく、試しながら学びやすい
  • 柔軟な構造で後から拡張しやすい
  • 学習した内容をそのままポートフォリオに活かせる

Flaskを使いこなして、PythonでのWeb開発をもっと楽しく、もっと便利にしていきましょう!学習を重ねることで、自分だけのオリジナルなWebアプリケーションを作れるようになります。

株式会社ONE WEDGE

【Serverlessで世の中をもっと楽しく】 ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
https://onewedge.co.jp/

Discussion