導入(問題提起)
「社内ツールの画面を作りたいけれど、HTMLやCSSは苦手……」 「Djangoの管理画面は便利そうだけど、自分たちでカスタマイズするには少しハードルが高い」 「もっと自由に、シンプルに管理画面を作れる方法はないだろうか?」
業務システムにおいて、「管理画面」はデータの入り口であり出口でもあります。どんなに優れたデータベースがあっても、入力しにくかったり一覧が見にくかったりすれば、そのシステムはすぐに使われなくなってしまいます。本記事では、Pythonの超軽量フレームワーク「Bottle」を使って、プログラミング初心者でも「実用的で使いやすい管理画面」を構築する方法を解説します。
課題説明:管理画面開発の「落とし穴」
多くのエンジニアやIT担当者が、管理画面の開発で以下のような壁にぶつかります。
- デザインに時間を使いすぎる
- データの紐付けが複雑
- セキュリティ対策の不足
業務システムに必要なのは美しさよりも「使いやすさ」と「速さ」です。しかし、ゼロからCSSを書いていると、肝心の機能開発が遅れてしまいます。
画面上の「入力欄」とデータベースの「項目」を正しくつなぎ込む処理が、コードが複雑になる原因となります。
「誰でも見られてしまう」「間違えてデータを全部消せてしまう」といったリスクへの対策が、軽量フレームワークでは後回しにされがちです。
Bottleを使えば、これらの課題を最小限の労力でクリアし、高品質なPython Webアプリの管理画面を手に入れることができます。
解決方法:Bottleで作る「理想の管理画面」
以下の3つの要素を組み合わせることで、開発効率と利便性を両立させます。
1. CSSフレームワーク(Bootstrap等)の活用
Bottleの「テンプレート機能」を使えば、HTMLファイルの中にPythonの値を埋め込むことができます。ここで、あらかじめ用意されたデザイン部品(ボタン、テーブル、入力フォーム)の詰め合わせであるBootstrapなどを使えば、1行もCSSを書かずに「それっぽい」プロ仕様の画面が出来上がります。
2. 「一覧」「登録」「編集」の共通パターン
管理画面の基本は「CRUD(クラッド)」と呼ばれる、作成(Create)・読み出し(Read)・更新(Update)・削除(Delete)の4機能です。
- 一覧画面:テーブル(表)形式でデータを表示。検索窓とフィルタ機能をつける。
- 入力フォーム:必須項目に赤いアスタリスクをつけ、日付などはカレンダーから選べるように。
- 編集/削除ボタン:一覧の各行に配置し、クリック一つで詳細画面へ遷移。
Bottleなら、これらを別々の「ルーティング」として定義するだけで、整理された構造のプログラムが書けます。
3. 軽量な認証機能の実装
「管理者しかログインできない」仕組みも、Bottleなら数行で実装可能です。
- パスワード保護:特定のURLにアクセスした際に、IDとパスワードを要求する処理を追加。
- セッション管理:ログイン後、ブラウザを閉じるまで「ログイン状態」を維持する仕組み。
具体例:簡単な「社員名簿管理」のコードイメージ
例えば、社員の氏名と部署を管理する画面をBottleで作ると、以下のようになります。
from bottle import route, run, template, request, redirect
# ダミーデータ(本来はSQLite等から取得)
employees = [{"id": 1, "name": "山田太郎", "dept": "営業部"}]
@route('/admin/employees')
def employee_list():
# employees_list.tpl というHTMLファイルを表示
return template('employees_list', rows=employees)
@route('/admin/employees/add', method='POST')
def employee_add():
new_name = request.forms.get('name')
new_dept = request.forms.get('dept')
# ここでデータベースに保存
employees.append({"id": len(employees)+1, "name": new_name, "dept": new_dept})
return redirect('/admin/employees')
run(host='0.0.0.0', port=8080)
このシンプルさこそが、Bottleの真骨頂です。ここに「検索フィルタ」や「CSV出力ボタン」を少しずつ付け足していくことで、本格的な業務システムへと成長させることができます。
まとめ:管理画面は「育てるもの」
管理画面は、現場で使いながら「このボタンはこっちがいい」「検索条件にこれを足してほしい」という要望を反映させてこそ、本当の価値が生まれます。 Bottleでの開発なら、
- 構造がシンプルだから、改修が怖くない。
- 余計な機能がないから、変更が他に影響しにくい。
- 自分の書いたコードが全てだから、ブラックボックスがない。
「今のExcel管理に、もっと使いやすい『表紙(画面)』をつけたい」という方は、Excel Web化の最初の一歩として、Bottleでの管理画面作成に挑戦してみてはいかがでしょうか。
問い合わせ導線
独自の管理画面が欲しい、既存システムの入力が使いづらくて困っている……。そんなお悩みは、ぜひ monou までお寄せください。 Python/Bottleを駆使し、現場の皆さんが「入力するのが楽しくなる」ような、ストレスフリーな管理画面を構築いたします。
「Webシステム開発のご相談は monou まで」