Turbogears-dependencies

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

TurboGears-依存関係

TurboGearsプロジェクトには、次のディレクトリが含まれています-

  • Config -プロジェクトのセットアップと構成が依存する場所
  • コントローラー-すべてのプロジェクトコントローラー、Webアプリケーションのロジック
  • i018n -サポートされている言語の翻訳ファイル
  • Lib -ユーティリティPython関数とクラス
  • モデル-データベースモデル
  • 公開静的ファイル-CSS、JavaScript、画像
  • テンプレート-コントローラーによって公開されるテンプレート。
  • テスト-完了したテストのセット。
  • Websetup -アプリケーションのセットアップ時に実行する機能。

プロジェクトをインストールする方法

このプロジェクトをインストールする必要があります。 setup.py はプロジェクトのベースディレクトリに既に提供されています。 このスクリプトが実行されると、プロジェクトの依存関係がインストールされます。

Python setup.py develop

デフォルトでは、プロジェクトのセットアップ時に次の依存関係がインストールされます-

  • ビーカー
  • げんし
  • zope.sqlalchemy
  • sqlalchemy
  • アレンビック
  • repoze.who
  • tw2.forms
  • tgext.admin≥0.6.1
  • WebHelpers2
  • バベル

インストール後、シェルで次のコマンドを発行して、開発サーバーでプロジェクトの提供を開始します-

Gearbox serve –reload –debug

上記のコマンドに従って、ビルド済みのサンプルプロジェクトを提供します。 ブラウザで http://localhost:8080 を開きます。 この既製のサンプルアプリケーションは、TurboGearsフレームワーク自体について簡単に紹介しています。

プロジェクトウィンドウ

このHelloプロジェクトでは、デフォルトのコントローラーがコントローラーディレクトリに Hello/hello/controllers.root.py として作成されます。 次のコードで root.py を変更しましょう-

from hello.lib.base import BaseController
from tg import expose, flash

class RootController(BaseController):
   movie = MovieController()
   @expose()
   def index(self):
      return "<h1>Hello World</h1>"

   @expose()
   def _default(self, *args, **kw):
      return "This page is not ready"

基本的な作業アプリケーションの準備ができたら、コントローラークラスにビューを追加できます。 上記の Mycontroller クラスには、新しいメソッド* sayHello()が追加されています。 * @ expose()*デコレータは、それに */sayHello URLを添付します。 この関数は、URLからパラメーターとして名前を受け入れるように設計されています。

「ギアボックスサービス」コマンドでサーバーを起動した後、 http://localhost:8080 。 Hello Worldメッセージは、次のURLが入力されてもブラウザに表示されます-

*http://localhost:8080/*
*http://localhost:8080/index*

これらすべてのURLは* RootController.index()メソッドにマッピングされます。 このクラスには、URLが特定の関数にマッピングされていない場合に呼び出される _default()*メソッドもあります。 URLへの応答は、@ expose()デコレーターによって関数にマップされます。

URLから公開された関数にパラメーターを送信することができます。 次の関数は、URLから名前パラメーターを読み取ります。

@expose()
def sayHello(self, name):
   return '<h3>Hello %s</h3>' %name

次の出力は、URLに対する応答としてブラウザに表示されます- http://localhost:8080/?name = MVL

Hello MVL

TurboGearsは、URLパラメーターを関数の引数に自動的にマップします。 RootControllerクラスはBaseControllerから継承されます。 これは、アプリケーションの* libフォルダー*で base.py として定義されます。

そのコードは次のとおりです-

from tg import TGController, tmpl_context
from tg import request

__all__ = ['BaseController']

def __call__(self, environ, context):
   tmpl_context.identity = request.identity
   return TGController.__call__(self, environ, context)
*TGController .__ call __* は、リクエストがルーティングされるControllerメソッドにディスパッチします。