PROGスクールナビ

Flask入門|PythonでWebアプリを作る基礎ガイド

FlaskはPythonで書けるシンプルな軽量Webフレームワークです。Djangoより入門しやすく、小〜中規模のWebアプリやAPIサーバー構築に向いています。

FlaskとDjangoの違い

項目FlaskDjango
規模感マイクロフレームワーク(軽量)フルスタックフレームワーク
学習コスト低い(シンプル)高い(機能が多い)
向き先小〜中規模API・シンプルなWeb大規模Webアプリ・CMS
ORMなし(SQLAlchemy等を別途使用)Django ORM が組み込み

Flaskのインストールと最初のアプリ

# インストール
pip install flask

# app.py
from flask import Flask

app = Flask(__name__)

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

@app.route('/hello/')
def hello(name):
    return f'こんにちは、{name}さん!'

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

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

from flask import Flask, request, jsonify

app = Flask(__name__)

# GETリクエスト
@app.route('/users', methods=['GET'])
def get_users():
    users = [{'id': 1, 'name': '太郎'}, {'id': 2, 'name': '花子'}]
    return jsonify(users)

# POSTリクエスト(JSON受け取り)
@app.route('/users', methods=['POST'])
def create_user():
    data = request.get_json()
    return jsonify({'message': f"{data['name']}を作成しました"}), 201

# パスパラメータ
@app.route('/users/', methods=['GET'])
def get_user(user_id):
    return jsonify({'id': user_id, 'name': '太郎'})

Jinja2テンプレート(HTML出力)

# app.py
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    users = ['太郎', '花子', '次郎']
    return render_template('index.html', users=users, title='ユーザー一覧')

# templates/index.html
# 
# 
# 

{{ title }}

#
    # {% for user in users %} #
  • {{ user }}
  • # {% endfor %} #
#

SQLAlchemyでデータベース連携

pip install flask-sqlalchemy

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

# モデル定義
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(120), unique=True)

# DB作成・データ追加
with app.app_context():
    db.create_all()
    user = User(name='太郎', email='taro@example.com')
    db.session.add(user)
    db.session.commit()

Flaskを学ぶ上でのロードマップ

  1. Pythonの基礎(変数・関数・クラス)
  2. FlaskでHello World → ルーティング
  3. テンプレート(Jinja2)でHTML出力
  4. SQLAlchemyでDB連携
  5. REST APIの設計・作成
  6. デプロイ(Render・Heroku・AWS等)

まとめ

FlaskはPythonで最も手軽にWebアプリ・APIを作れるフレームワークです。Pythonの基礎が分かれば1週間でシンプルなAPIが作れます。バックエンドエンジニアを目指す入門として最適です。

📚 プログラミング初心者におすすめの本

🛒 楽天で人気のプログラミング入門書