Web2py-introduction
提供:Dev Guides
Web2py-はじめに
*web2py* は、データベース駆動型Webアプリケーションを含むアジャイル開発用の無料のオープンソースWebフレームワークとして定義されています。 Pythonで記述され、Pythonでプログラム可能です。 これはフルスタックフレームワークです。必要なすべてのコンポーネントで構成されているため、開発者は完全に機能するWebアプリケーションを構築する必要があります。
*web2py* フレームワークは、従来のパターンとは異なり、Webアプリケーションを実行する *Model-View-Controller* パターンに従います。
- *モデル*は、データのロジックを含むアプリケーションの一部です。 モデル内のオブジェクトは、データベースからデータを取得および保存するために使用されます。
- View はアプリケーションの一部であり、データの表示をエンドユーザーに表示するのに役立ちます。 データの表示はモデルから取得されます。
- Controller は、ユーザーの操作を処理するアプリケーションの一部です。 コントローラーは、ビューからデータを読み取り、ユーザー入力を制御し、特定のモデルに入力データを送信できます。
- web2py には、Cookieとセッションを管理する機能が組み込まれています。 (SQLに関して)トランザクションをコミットした後、セッションも同時に保存されます。
- web2py には、特定のアクションの完了後、スケジュールされた間隔でタスクを実行する能力があります。 これは CRON で実現できます。
web2py –ワークフロー
以下のワークフロー図をご覧ください。
ワークフロー図を以下に説明します。
- Models 、 Views 、および Controller コンポーネントは、ユーザーweb2pyアプリケーションを構成します。
- web2pyの同じインスタンスで複数のアプリケーションをホストできます。
- ブラウザはHTTPリクエストをサーバーに送信し、サーバーは Model 、 Controller および View と対話して必要な出力を取得します。
- 矢印は、データベースエンジンとの通信を表します。 データベースクエリは生のSQLまたはweb2py Database Abstraction Layer(これ以降の章で説明します)を使用して記述できるため、 web2py アプリケーションコードはデータベースエンジンに依存しません。
- Model は、データベースとのデータベース接続を確立し、 Controller と対話します。 一方、 Controller は View と対話して、データの表示をレンダリングします。
- Dispatcher は、HTTP応答で指定された要求されたURLをコントローラーの関数呼び出しにマップします。 関数の出力は、文字列またはハッシュテーブルです。
- データは View によってレンダリングされます。 ユーザーがHTMLページを要求すると(デフォルト)、データはHTMLページにレンダリングされます。 ユーザーがXMLで同じページを要求すると、web2pyはXMLで辞書をレンダリングできるビューを見つけようとします。
- web2pyのサポートされているプロトコルには、HTML、XML、JSON、RSS、CSV、およびRTFが含まれます。
モデルビューコントローラ
web2pyの model-view-controller 表現は次のとおりです-
モデル
"db.py" is the model:
db = DAL('sqlite://storage.sqlite')
db.define_table(employee, Field('name'), Field(‘phone’))
モデル*には、アプリケーションデータのロジックが含まれています。 上の図で説明したように、データベースに接続します。 SQLiteが使用されており、従業員として定義されたテーブルとともに *storage.sqlite ファイルに保存されていると考えてください。 テーブルが存在しない場合、web2pyはそれぞれのテーブルを作成することで役立ちます。
コントローラ
プログラム "default.py" は Controller です。
def employees():
grid = SQLFORM.grid(db.contact, user_signature = False)
return locals()
*web2py* では、URLマッピングは関数とモジュールへのアクセスに役立ちます。 上記の例では、コントローラーには従業員と呼ばれる単一の機能(または「アクション」)が含まれています。
*Controller* が実行するアクションは、文字列またはPython辞書を返します。これは、変数のローカルセットを含むキーと値の組み合わせです。
View
*"default/contactsl"* は *View* です。
{{extend 'layoutl'}}
<h1>Manage My Employees</h1>
{{=grid}}
特定の例では、 View は、関連するコントローラー関数が実行された後の出力を表示します。
この*表示*の目的は、HTMLの形式である辞書の変数をレンダリングすることです。 View ファイルはHTMLで記述されていますが、 \ {\ {および}} 区切り記号を使用してPythonコードを埋め込みます。
HTMLに埋め込まれたコードは、辞書のPythonコードで構成されています。
web2pyから始める
*web2py* は、Windows、UNIX、Mac OS Xなどのすべての主要なオペレーティングシステム用のバイナリパッケージで提供されます。
web2pyをインストールするのは簡単です。なぜなら-
- Pythonインタープリターで構成されているため、プリインストールする必要はありません。 すべてのオペレーティングシステムで実行されるソースコードバージョンもあります。
- 次のリンクは、ユーザーのニーズに応じてダウンロードできる web2py のバイナリパッケージで構成されています-http://www.web2py.com/init/default/download[www.web2py.com]
- web2py フレームワークは、他のフレームワークとは異なり、事前インストールを必要としません。 ユーザーは、オペレーティングシステムの要件に従って、zipファイルをダウンロードして解凍する必要があります。
- web2py フレームワークはPythonで記述されています。Pythonは、実行にコンパイルや複雑なインストールを必要としない完全な動的言語です。
- Javaや.netなどの他のプログラミング言語と同様に仮想マシンを使用し、開発者が作成したソースコードを透過的にバイトコンパイルできます。
Operating System | Command |
---|---|
Unix and Linux (source distribution) | python web2py.py |
OS X (binary distribution) | open web2py.app |
Windows (binary web2py distribution) | web2py.exe |
Windows (source web2py distribution) | c:/Python27/python.exe web2py.py |