導入(問題提起)
PythonでWebシステム開発を始める際に「BottleとFastAPIのどちらを選ぶべきか」で迷うケースは非常に多いです。結論はシンプルで、「今の要件とチームの成熟度」で決めれば失敗しません。本記事では小規模〜中規模の業務システムを念頭に、Excel Web化からの段階導入という現実的な文脈で、両者の選定基準・技術的な違い・移行のしやすさを3000字超で丁寧に比較します(SEO: Webシステム開発/業務システム/Python/Excel Web化)。
課題の詳細説明
検討時に立ちはだかる典型的な迷い:
- とにかく早く“動くもの”を社内に提供したい(要件固めの前段階)
- 将来はAPI連携やB2B連携、モバイルアプリとの共存も視野に入れたい
- 型での入力検証や自動ドキュメント生成、テスト容易性も捨てがたい
- 小さなチームで運用するため、学習コストと保守コストを最小化したい
解決方法(比較の軸)
選択のブレを無くすため、次の軸で両者を比較します。
- 学習コスト:
- 初速と中長期の伸び:
- エコシステム:
- アーキテクチャ適性:
- Bottle:最小。単一ファイルでも動く。ルーティングとテンプレートが中心 - FastAPI:中。Pydantic(型)や依存性注入の理解が必要
- 初速:Bottleが速い(とにかく作って出す) - 中長期:FastAPIは型定義・OpenAPI自動生成・バリデーションで保守が楽
- FastAPIはツールが豊富(認証、スキーマ、ドキュメント、テストの情報量) - Bottleは軽量で自由度が高い(自分で選んで足す設計に向く)
- 社内向けExcel Web化の最小構成→Bottle - API中心・外部連携前提・将来スケール→FastAPI
具体例(選定ガイド)
ユースケース別のおすすめ:
- 社内申請・台帳のExcel Web化:Bottle+SQLiteでMVP→定着後にFastAPIへ段階移行
- 顧客・在庫のB2B連携やモバイル連携:最初からFastAPIでスキーマ駆動設計
- 移行期間が短いPoC:Bottleで“仮説検証”し、当たりが出たらFastAPIで本実装
どちらを採ってもPythonの生産性は高く、移行も比較的容易です。重要なのは“いま必要な価値を最短で出す”ことと“次の一歩を確保する”ことの両立です。
技術的な解説
ルーティングと入力検証
# Bottle(最小で画面を出す)
from bottle import route, run, request
@route('/customers', method='POST')
def create_customer():
name = request.forms.get('name') # サーバ側での単純チェックを自作
# DBへINSERT...
return 'ok'
# FastAPI(型で堅くする)
from fastapi import FastAPI
from pydantic import BaseModel, constr
app = FastAPI()
class Customer(BaseModel):
name: constr(min_length=1, max_length=80)
@app.post('/customers')
def create_customer(cust: Customer):
# cust.name は型検証済み
return {'ok': True}
テンプレートとAPIドキュメント
- Bottle:テンプレート(ビュー)で画面を素早く作る。UIの反復に向く
- FastAPI:OpenAPI/Swaggerが自動生成され、外部連携やチーム開発に有利
権限と監査(共通パターン)
どちらでもRBACと監査ログは導入可能。共通ミドルウェア/デコレータで権限チェックを一元化し、audit_logsテーブルに保存。削除・承認は二要素を推奨。
データベースの選択
- 最小:SQLiteで開始(単一ファイル・バックアップ容易)
- 成長:MySQL/PostgreSQLへ移行(接続プール・PITR)
導入の流れ
- 目的の明確化:Excel Web化で“どの業務を、誰が、どの頻度で使うか”を定義
- フレームワーク選定:上記の比較軸で当面6〜12か月の現実解を決定
- MVP実装:画面/入力/保存/検索/権限/監査/バックアップの最小セット
- 検証:社内10〜30人で試用、運用負荷と改善点を収集
- 次の一歩:FastAPI化(必要なら)やDB移行、API公開の計画を立てる
まとめ
- 速攻試作ならBottle、スキーマ駆動・拡張性ならFastAPI
- 小規模はSQLite開始で十分、将来MySQL/PostgreSQLへ段階移行
- 選定基準は“要件とチームの成熟度”。今の価値と次の一歩を両立させる
問い合わせ導線
フレームワーク選定やアーキテクチャ相談は、お問い合わせから。業務システムの現実解をご提案します。
Webシステム開発のご相談は monou まで