このセクションでは、できるだけ早く Pylons を始められるようになることと、 そのプロジェクトの quick overview を提供することを意図しています。 Pylons の種々な側面の探検を奨励するために、リンクが提供されます。
Warning
以下の instruction は Python 2.4 以上を必要とします。Python 2.3 と ともにインストールするには Python 2.3 インストールガイド を見てくだ さい。
システムにインストールされた Python ライブラリとの衝突を避けるために、 Pylons には “仮想” Python 環境をセットアップするブートストラップ Python スクリプトが付属しています。そして Pylons は仮想環境にインストー ルされます。
By the Way
virtualenv は独立した Python 環境を作成する便利なツールです。 潜在的なシステム衝突の可能性からパッケージを隔離することに加え、多 くのパッケージを system-wide の Python の中にばらまくことなく、 easy_install を使用して Python ライブラリを簡単にインストー ルできるようにします。
もう一つのすばらしい利点は、すべてのモジュールを好きなディレクトリ の下に置くことができるので、 root アクセスは全く必要でないというこ とです。 これによって、共有ホスティングプロバイダーや、 system-wide へのアクセスが入手できないその他のシステムに、動作する Pylons インストールをセットアップすることが簡単になります。
go-pylons.py スクリプトをダウンロードします。
スクリプトを実行して、以下のように、仮想環境を作成するためのディレクトリを指定します:
$ python go-pylons.py mydevenv
Tip
これら 2 つのステップは、 Unix システム上では curl を用いて以下の ショートカットでまとめて実行することができます:
$ curl http://pylonshq.com/download/0.9.7/go-pylons.py | python - mydevenv
system-wide の追加の Python ライブラリからも分離するためには、 –no-site-packages オプションを付けて実行します。
$ python go-pylons.py --no-site-packages mydevenv
この結果、動作する virtualenv と Pylons インストールが得られます。仮想 環境を activate してください (スクリプトは、 mydevenv/dir ディレクトリ へのフルパスを指定することによって実行することもできます):
$ source mydevenv/bin/activate
Windows では、このように activate してください:
> mydevenv\Scripts\activate.bat
Pylons の最新の開発版ソースを取得するために、 Mercurial をインストールしなければなり ません。 Windows, MacOSX, および他の OS のための Mercurial パッケージ も利 用可能です。
最新のコードをチェクアウトします:
$ hg clone https://www.knowledgetap.com/hg/pylons-dev Pylons
setuptools に Pylons というディレクトリに含まれるバージョンを使用す るように伝えるために:
$ cd Pylons
$ python setup.py develop
現在 Pylons のアクティブなバージョンは、このディレクトリの中のコピーで あり、そこで行われた変更は実行される Pylons アプリケーションに反映され るでしょう。
以下のコマンドで helloworld という名前の新しいプロジェクトを作成し てください:
$ paster create -t pylons helloworld
Note
Window ユーザーは、 Windows における注意点 で説明されているように PATH を構成しなければなりません。さもなければ、 (仮想環境 bin ディレクトリに含まれている) paster コマンドにフルパスを指定する 必要があります。
これを実行すると、 2 つのプロンプトが表示されます:
それぞれのプロンプトについて、デフォルトを受け入れるなら Enter キーを打っ てください (デフォルトでは Mako テンプレート、 SQLAlchemy なしです)
これは作成されたディレクトリ構造と詳しい情報へのリンクです:
入れ子の helloworld ディレクトリ はこんな風になっています:
__init__.py
controllers - コントローラ
model - モデル
public
templates - テンプレート
tests - ユニットテストと機能テスト
websetup.py - 実行時設定
Web アプリケーションを起動する:
$ cd helloworld
$ paster serve --reload development.ini
このコマンドは、 development.ini からプロジェクトのサーバ構成ファ イルを読み込んで、 Pylons アプリケーションを起動します。
Note
--reload オプションは、Python ファイルまたは development.ini 構成ファイルに変更が加えられたら自動的にサー バがリロードされるようにします。これは、開発中は非常に便利です。 サー バを止めるには、 Ctrl+c あるいはプラットホームでそれに相 当するキーを押してください
サーバが稼働しているときに http://127.0.0.1:5000/ を訪問すると、ウェル カムページが表示されるでしょう。
基本的な hello world アプリケーションを作成するには、リクエストを扱うた めの controller をプロジェクトに作成します。
$ paster controller hello
作成された helloworld/controllers/hello.py モジュールを開いてく ださい。デフォルトコントローラは単に ‘Hello World’ 文字列を返すようになっ ています。
import logging
from pylons import request, response, session, tmpl_context as c
from pylons.controllers.util import abort, redirect_to
from helloworld.lib.base import BaseController, render
log = logging.getLogger(__name__)
class HelloController(BaseController):
def index(self):
# Return a rendered template
#return render('/hello.mako')
# or, Return a response
return 'Hello World'
モジュールの先頭で、コントローラで共通に使用されるいくつかのオブジェク トが自動的にインポートされています。
http://127.0.0.1:5000/hello/index を開いてください。そこには “Hello World” という短いテキスト文字列があるはずです。(必要ならアプリケーショ ンを立ち上げます):
Tip
URL 設定 では URL がどのようにコントローラとそのメソッドに マッピングされるかが説明されています。
environ の中にある情報のいくつかをレンダリングするためのテンプ レートを加えます。
まず最初に、 templates ディレクトリに hello.mako を以下 の内容で作成してください:
Hello World, the environ variable looks like: <br />
${request.environ}
テンプレートの中の request 変数は、現在のリクエストの情報を得る ために使用されます。 Pylons においてテンプレートの中で使えるすべての変 数は、 template グローバル変数 <template-globals> にリストされています。
次に、 controllers/hello.py モジュールを更新して index メソッド を以下の通りにしてください:
class HelloController(BaseController):
def index(self):
return render('/hello.mako')
ブラウザでページをリフレッシュすると、今度はこのように見えるでしょう: