1. はじめに
Web2Pyは、Pythonで書かれたオープンソースのWebアプリケーションフレームワークです。セキュアかつアジャイルな開発を重視し、データベース駆動型のWebアプリケーションを簡単に構築できます。インストールや設定が不要で、GUI管理画面からアプリの作成・管理ができるため、初心者からプロまで幅広く支持されています。
2. Web2Pyの特徴
Web2Pyはフルスタックフレームワークであり、HTTPリクエスト/レスポンスの処理、セッション管理、データベース抽象化レイヤ(DAL)、認証、国際化、キャッシュなど、Webアプリに必要な機能を標準搭載しています。MVC(Model-View-Controller)アーキテクチャを採用し、コードの分離と保守性を高めています。
3. インストールと起動
web2py.py
はリポジトクローンしてダウンロードして実行します
git clone https://github.com/web2py/web2py.git
なので、Web2Pyはインストール不要で、ダウンロードしてすぐに実行できます。以下のコマンドでWeb2Pyを起動し、管理画面にアクセスできます。
cd web2py
git submodule update --init --recursive
python web2py.py
起動後、管理者パスワードを設定し、ブラウザで http://127.0.0.1:8000/
にアクセスしてください。GUIから新しいアプリケーションを作成できます。
4. 最初のアプリケーション作成
Web2Pyの管理画面から「新規アプリケーション」を作成し、アプリ名を入力するだけでプロジェクトが生成されます。生成直後は「welcome」アプリがデフォルトで用意されています。
5. コントローラの作成
コントローラはアプリのロジックを記述する場所です。controllers/default.py
に以下のようなアクションを追加します。
def hello():
return dict(greeting='こんにちは、Web2Py!')
このアクションは、/yourapp/default/hello
にアクセスしたときに「こんにちは、Web2Py!」というメッセージを表示します。
6. ビューの作成
ビューはHTMLテンプレートです。views/default/hello.html
を作成し、以下のように記述します。
{{extend 'layout.html'}}
{{=greeting}}
コントローラで渡した変数greeting
が、HTMLとして表示されます。
7. モデルの定義
モデルはデータベース構造を定義します。models/db.py
に以下を追加します。
db.define_table('person',
Field('name', 'string'),
Field('age', 'integer')
)
これでperson
テーブルが作成され、名前と年齢を保存できます。
8. フォームの作成
Web2Pyはフォーム生成も簡単です。以下のようにコントローラに記述します。
def add_person():
form = SQLFORM(db.person)
if form.process().accepted:
response.flash = '登録が完了しました'
return dict(form=form)
ビューviews/default/add_person.html
:
{{extend 'layout.html'}}
{{=form}}
9. データの一覧表示
登録したデータを一覧表示するには、SQLFORM.grid
を使います。
def list_people():
grid = SQLFORM.grid(db.person)
return dict(grid=grid)
ビューviews/default/list_people.html
:
{{extend 'layout.html'}}
{{=grid}}
10. 認証機能の追加
Web2Pyは認証機能も標準搭載です。models/db.py
に以下を追加します。
from gluon.tools import Auth
auth = Auth(db)
auth.define_tables()
コントローラでログイン必須のアクションを作る例:
@auth.requires_login()
def secret():
return dict(message="ログインユーザーのみ閲覧可能です")
11. エラーハンドリングとチケットシステム
Web2Pyはエラー発生時に「チケット」を自動発行し、管理者が後から詳細を確認できます。ユーザーにはエラー内容は非公開で、セキュアな運用が可能です。
まとめ
Web2PyはPythonで手軽にWebアプリケーションを開発したい方に最適なフレームワークです。GUI管理画面、豊富な標準機能、MVC設計、認証やエラー管理など、実用的な要素が揃っています。ぜひWeb2Pyで、あなたのアイデアを形にしてみてください。