MENU

Hello, {{ name }}!

# Python Flask入門完全ガイド【2025年最新版】

Flaskは、PythonでWebアプリケーションを開発するためのマイクロフレームワークです。シンプルで軽量でありながら、柔軟性も兼ね備えており、小規模なWebアプリケーションから大規模なアプリケーションまで幅広く対応できます。本記事では、Flaskの基礎から応用までを網羅的に解説し、Webアプリケーション開発の知識がない初心者でもFlaskを使いこなせるように、具体的なコード例を豊富に交えながら解説します。Flaskを学ぶ上で迷うことなく、すぐに実践できる知識が身につくことを目指します。

## 目次

1. はじめに
2. Flaskのインストールと環境構築
3. Hello Worldアプリケーションの作成
4. ルーティングとHTTPメソッド
5. テンプレートエンジンの活用
6. データベース連携
7. エラーハンドリングとデバッグ
8. 応用的な使い方 (Blueprint, REST API)
9. まとめ

## 1. はじめに

Webアプリケーション開発の経験がない方にとって、フレームワークの選択は重要です。Flaskは、Djangoのようなフルスタックフレームワークと比較して軽量で学習コストが低く、Web開発の基礎を理解するのに適しています。本記事では、Flaskの基本的な概念から、より複雑なアプリケーションの構築までを段階的に解説します。Flaskの柔軟性を最大限に活かし、自分だけのWebアプリケーションを開発できるようになります。

## 2. Flaskのインストールと環境構築

まず最初に、Flaskをインストールする必要があります。Pythonのパッケージマネージャであるpipを使用します。

🐚 BASH
pip install flask

次に、簡単なFlaskアプリケーションの実行環境を準備します。

🐍 PYTHON
from flask import Flask

app = Flask(__name__)

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

このコードを`app.py`というファイル名で保存し、ターミナルで`python app.py`を実行すると、Flaskの開発サーバーが起動します。`debug=True`とすることで、コードの変更を自動的に反映させ、エラーメッセージを詳細に表示できます。

: Flaskのインストールと環境構築の様子を示すスクリーンショット (ターミナルとブラウザの画面)

## 3. Hello Worldアプリケーションの作成

Flaskで最初のWebアプリケーションを作成してみましょう。

🐍 PYTHON
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Hello, World!"

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

このコードは、ルートURL (`/`) にアクセスした際に “Hello, World!” という文字列をブラウザに表示する簡単なアプリケーションです。`@app.route(“/”)` デコレータは、指定されたURLにアクセスされたときに `hello_world()` 関数を実行するようにFlaskに指示します。

ブラウザで`http://127.0.0.1:5000/`にアクセスすると、”Hello, World!”と表示されます。

## 4. ルーティングとHTTPメソッド

Flaskでは、`@app.route()` デコレータを使用して、URLと関数を関連付けます。さまざまなHTTPメソッド(GET, POST, PUT, DELETE)に対応したルーティングも可能です。

🐍 PYTHON
from flask import Flask, request

app = Flask(__name__)

@app.route('/greet', methods=['GET'])
def greet():
    name = request.args.get('name', 'World')
    return f"Hello, {name}!"

@app.route('/post_example', methods=['POST'])
def post_example():
    data = request.form
    return f"You sent: {data}"

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

このコードでは、`/greet` URLにGETリクエストを送信すると、クエリパラメータ `name` の値を取得して挨拶文を表示します。`/post_example` URLにPOSTリクエストを送信すると、フォームデータを受け取り、それを表示します。

## 5. テンプレートエンジンの活用

テンプレートエンジンを使用すると、HTMLを動的に生成できます。Flaskでは、Jinja2がデフォルトのテンプレートエンジンとして使用されます。

🐍 PYTHON
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/template_example')
def template_example():
    name = "Flask User"
    return render_template('example.html', name=name)

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

`example.html` ファイルを作成し、以下のような内容を記述します。

🌐 HTML
<!DOCTYPE html><html><head><title>Template Example</title></head><body><h1>Hello, {{ name }}!</h1></body></html>

このコードは、`/template_example` URLにアクセスした際に、`example.html` テンプレートに `name` 変数を渡してレンダリングします。

: テンプレートエンジンの使用例を示すスクリーンショット (HTMLファイルとレンダリングされた結果)

## 6. データベース連携

Flaskアプリケーションでデータベースを使用するには、SQLAlchemyなどのORMを使用できます。ここでは、SQLiteデータベースとの連携例を示します。

🐍 PYTHON
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)

    def __repr__(self):
        return f'<User {self.username}>'

with app.app_context():
    db.create_all()

このコードは、`database.db` というSQLiteデータベースファイルを作成し、`User` テーブルを定義します。`db.create_all()` は、定義されたテーブルが存在しない場合に作成します。

## 7. エラーハンドリングとデバッグ

Flaskでは、エラーハンドリングも重要です。`errorhandler` デコレータを使用して、特定のHTTPエラーに対するカスタムレスポンスを定義できます。

🐍 PYTHON
from flask import Flask, render_template

app = Flask(__name__)

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

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

このコードは、404エラーが発生した場合に `404.html` テンプレートを表示します。

: エラーハンドリングの例を示すスクリーンショット (404エラーページ)

## 8. 応用的な使い方 (Blueprint, REST API)

Flaskには、アプリケーションをモジュール化するためのBlueprintや、REST APIを構築するための機能も用意されています。Blueprintを使用すると、大規模なアプリケーションをより整理された方法で開発できます。REST APIを構築するには、`request` オブジェクトと `jsonify` 関数を使用します。

## 9. まとめ

本記事では、Python Flaskの基礎から応用までを網羅的に解説しました。Flaskは、Webアプリケーション開発を始めるための強力なツールであり、本記事で紹介した知識を基に、自分だけのWebアプリケーションを開発できるようになるはずです。

**重要ポイントの再確認:**

* Flaskのインストールと環境構築
* ルーティングとHTTPメソッド
* テンプレートエンジンの活用
* データベース連携
* エラーハンドリングとデバッグ

**実践へのアクションプラン:**

1. 簡単なWebアプリケーションを作成する。
2. データベース連携を試す。
3. Blueprintを使用してアプリケーションをモジュール化する。
4. REST APIを構築する。

**関連リソース:**

* Flask公式ドキュメント: [https://flask.palletsprojects.com/](https://flask.palletsprojects.com/)
* Flaskチュートリアル: [https://realpython.com/flask-by-example-part-1-setup/](https://realpython.com/flask-by-example-part-1-setup/)

※ 本記事の情報は執筆時点のものです。最新情報については各公式サイトをご確認ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次