Web2py-introduction

提供:Dev Guides
移動先:案内検索

Web2py-はじめに

*web2py* は、データベース駆動型Webアプリケーションを含むアジャイル開発用の無料のオープンソースWebフレームワークとして定義されています。 Pythonで記述され、Pythonでプログラム可能です。 これはフルスタックフレームワークです。必要なすべてのコンポーネントで構成されているため、開発者は完全に機能するWebアプリケーションを構築する必要があります。
*web2py* フレームワークは、従来のパターンとは異なり、Webアプリケーションを実行する *Model-View-Controller* パターンに従います。
  • *モデル*は、データのロジックを含むアプリケーションの一部です。 モデル内のオブジェクトは、データベースからデータを取得および保存するために使用されます。
  • View はアプリケーションの一部であり、データの表示をエンドユーザーに表示するのに役立ちます。 データの表示はモデルから取得されます。
  • Controller は、ユーザーの操作を処理するアプリケーションの一部です。 コントローラーは、ビューからデータを読み取り、ユーザー入力を制御し、特定のモデルに入力データを送信できます。

Web2py Appliance

  • web2py には、Cookieとセッションを管理する機能が組み込まれています。 (SQLに関して)トランザクションをコミットした後、セッションも同時に保存されます。
  • web2py には、特定のアクションの完了後、スケジュールされた間隔でタスクを実行する能力があります。 これは CRON で実現できます。

web2py –ワークフロー

以下のワークフロー図をご覧ください。

ワークフロー

ワークフロー図を以下に説明します。

  • ModelsViews 、および Controller コンポーネントは、ユーザーweb2pyアプリケーションを構成します。
  • web2pyの同じインスタンスで複数のアプリケーションをホストできます。
  • ブラウザはHTTPリクエストをサーバーに送信し、サーバーは ModelController および View と対話して必要な出力を取得します。
  • 矢印は、データベースエンジンとの通信を表します。 データベースクエリは生のSQLまたはweb2py Database Abstraction Layer(これ以降の章で説明します)を使用して記述できるため、 web2py アプリケーションコードはデータベースエンジンに依存しません。
  • Model は、データベースとのデータベース接続を確立し、 Controller と対話します。 一方、 ControllerView と対話して、データの表示をレンダリングします。
  • 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