PythonでWebアプリを作りたいと思ったとき、Flaskは最適な選択肢の一つです。軽量で柔軟、かつ初心者にも優しいフレームワークとして知られ、シンプルなブログから本格的なAPIまで幅広く開発できます。この記事では、Flaskの基本から実際に動くアプリの作り方まで、初心者向けにわかりやすく解説します。
目次
Toggle1. Flaskとは? その特徴と魅力
Flaskは、Python製のマイクロWebフレームワークです。Djangoのような「すべてを含む」フレームワークとは異なり、必要最小限の機能を提供し、拡張性が高いのが特徴です。
- 軽量で学習コストが低い → 初心者でもすぐに始められる
- 拡張可能 → 必要な機能はライブラリで追加できる
- シンプルなコード構造 → 小規模プロジェクトに最適
例えば、たった5行のコードでWebサーバーを立ち上げられます。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, Flask!"
if __name__ == '__main__':
app.run()
このシンプルさが、Flaskが人気を集める理由です。
2. Flaskの環境構築(Windows/Mac対応)
まずは、PythonとFlaskをインストールしましょう。
手順1: Pythonのインストール
まだPythonを入れていない場合は、公式サイトから最新版をダウンロードしてください。
手順2: Flaskのインストール
ターミナル(Mac)またはコマンドプロンプト(Windows)で以下を実行します。
pip install flask
手順3: 動作確認
先ほどの5行コードをapp.py
として保存し、実行します。
python app.py
ブラウザでhttp://127.0.0.1:5000/
にアクセスし、「Hello, Flask!」と表示されれば成功です。
3. Flaskで作る初めてのWebアプリ(ToDoリスト)
基本を理解したら、実際に動くアプリを作ってみましょう。ここではシンプルなToDoリストを開発します。
必要な機能
- ToDoの追加
- ToDoの表示
- ToDoの削除
コード例
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
todos = []
@app.route('/')
def index():
return render_template('index.html', todos=todos)
@app.route('/add', methods=['POST'])
def add():
todo = request.form.get('todo')
todos.append(todo)
return redirect('/')
@app.route('/delete/<int:index>')
def delete(index):
if 0 <= index < len(todos):
todos.pop(index)
return redirect('/')
if __name__ == '__main__':
app.run(debug=True)
HTMLテンプレート(templates/index.html
)
<!DOCTYPE html>
<html>
<head>
<title>Flask ToDo</title>
</head>
<body>
<h1>ToDoリスト</h1>
<form action="/add" method="post">
<input type="text" name="todo" required>
<button type="submit">追加</button>
</form>
<ul>
{% for todo in todos %}
<li>
{{ todo }}
<a href="/delete/{{ loop.index0 }}">削除</a>
</li>
{% endfor %}
</ul>
</body>
</html>
これで、ToDoを追加・削除できるシンプルなアプリが完成です!
4. Flaskの主要機能まとめ
機能 | 説明 | 使用例 |
---|---|---|
ルーティング | URLと関数を紐づける | @app.route('/') |
テンプレート | HTMLを動的に生成 | render_template() |
フォーム処理 | ユーザー入力を受け取る | request.form.get() |
リダイレクト | 別のページに転送 | redirect('/') |
5. 次のステップ:Flaskでできること
Flaskは基本を押さえれば、さらに高度な開発も可能です。
- データベース連携 → SQLAlchemyを使えばMySQL/PostgreSQLと接続可能
- ユーザー認証 →
Flask-Login
でログイン機能を実装 - API開発 →
Flask-RESTful
でRESTful APIを構築
例えば、Flask + SQLite3でデータを永続化するには、以下のようにします。
import sqlite3
from flask import g
def get_db():
if 'db' not in g:
g.db = sqlite3.connect('todos.db')
return g.db
@app.teardown_appcontext
def close_db(e=None):
db = g.pop('db', None)
if db is not None:
db.close()
6. まとめ:Flaskは初心者に最適なWebフレームワーク
Flaskは、少ないコードでWebアプリを構築できるため、初心者でも気軽に始められます。
- シンプルな構造 → 基本を学びやすい
- 拡張性が高い → 必要に応じて機能追加可能
- Pythonの強力なライブラリと連携 → 機械学習やデータ分析とも組み合わせられる
「まずは小さく始め、必要に応じて拡張する」という哲学は、プログラミング学習にも最適です。
さあ、あなたもFlaskで最初のWebアプリを作ってみましょう! 🚀
【次のステップ】
Flaskの公式ドキュメント(Flask Official Site)を参考に、さらに深く学んでみてください。