# 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を使用します。
pip install flask
次に、簡単なFlaskアプリケーションの実行環境を準備します。
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アプリケーションを作成してみましょう。
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)に対応したルーティングも可能です。
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がデフォルトのテンプレートエンジンとして使用されます。
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` ファイルを作成し、以下のような内容を記述します。
<!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データベースとの連携例を示します。
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エラーに対するカスタムレスポンスを定義できます。
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/)
※ 本記事の情報は執筆時点のものです。最新情報については各公式サイトをご確認ください。
コメント