Python Pylons を試す



今までWebアプリケーションといえば、PHPかJavaで書いてました。
ぼちぼちPythonでWebアプリケーションを作ってみようとおもいます。

色々調べてみた結果、Pylonsが評判よさそう。

早速、インストール
easy_install Pylons==0.9.6.2


※eaxy_installがないときは、
http://peak.telecommunity.com/dist/ez_setup.py
から、ez_setup.pyをダウンロードし、
python ez_setup.py Pylons==0.9.6.2



デフォルトでテンプレートエンジンはmakoになります。
インストール時のオプションでcheetahなどに
変更できるようですが、私はmakoでよいのでデフォルトのまま。


プロジェクトの作成は、
paster create -t pylons helloworld


※Windowsの場合だと、Pythonをインストールしているフォルダの
Scriptsにパスを通しておく必要あり。

これでhelloworldというフォルダが作成されます。
とりあえず動作確認。

cd helloworld
paster serve --reload development.ini

http://localhost:5000/

動いている風な画面が表示されます。


helloworld/publicのなかに適当な記載をしたtest.htmlをぶちこみ、
参照できることを確認。

http://localhost:5000/test.html


次にコントローラーと呼ばれるものを作ってみます。

paster controller hello


このコマンドで、
controllers/hello.py
に雛形が作成されます。

http://localhost:5000/hello

にアクセスすると、
Hello World
と答えてくれるはず。

リクエストに対する分岐は
helloworld/config/routing.py
が担っている模様。

map.connect('', controller='hello', action='index')
map.connect(':controller/:action/:id')
map.connect('*url', controller='template', action='view')

と記載し、public/index.htmlを削除すると、
http://localhost:5000/
にアクセスするだけで、Hello Worldと答えてくれます。


画面の表示にテンプレートを使用したい場合は、
helloworld/templates/serverinfo.mako
というファイルを作成。

内容は

Server info for ${request.host}
The URL you called: ${h.url_for()}


暗黙で、requestとhという変数が定義されています。
requestはその名のとおり、受け取ったrequest。
hはhelperクラスと呼ばれる、html描画サポートクラスです。


このテンプレートを呼び出すにはhelloworld/controllers/hello.pyに

def serverinfo(self):
  return render('/serverinfo.mako')

というメソッドを追加すればOK

http://localhost:5000/hello/serverinfo

にアクセスすれば、テンプレートエンジンにより合成されたページを
見ることができます。


PHPでいうcodeigniter、Rubyのruby on railsと同じノリですね。

・・・はじめてのPylons
http://wiki.pylonshq.com/pages/viewpage.action?pageId=10027086の内容を試してみただけです。


webサーバに乗せる方法を調べてみます。


もどる