0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Web2Pyで始めるPythonウェブ開発

Posted at

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で、あなたのアイデアを形にしてみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?