Djangoの学習にPinaxはどうだろう?

  • 12月 30, 2008 18:00

Djangoの学習に何がいいかと思っていたけど

Pinax はなかなか良い気がする。

これはDjangoのよく聞くPluginアプリを集めたもので、

「アホか!」

というほど、いろいろなモノが入っている。

pinax/apps/external_apps

には

  • dbtemplates
  • feedutil
  • messages
  • photologue
  • things
  • ajax_validation
  • django_extensions
  • flag
  • microblogging
  • robots
  • threadedcomments
  • announcements
  • django_openid
  • friends
  • notification
  • schedule
  • timezones
  • app_plugins
  • djangodblog
  • gravatar
  • oembed
  • voting
  • avatar
  • djangologging
  • locations
  • omb
  • swaps
  • wiki
  • bookmarks
  • emailconfirmation
  • mailer
  • pagination
  • tagging

などがあった。

一方、それらを動かすモジュールも必要ですが、

pinax/libs/external_libs

を見ると

  • Creoleparser-0.5.0
  • Genshi-0.5.1
  • elementtree-1.2.6
  • Pygments-0.11.1
  • dateutil
  • docutils-0.4
  • feedparser-4.1
  • gdata.py-1.0.13
  • geopy-trunk
  • markdown-1.7
  • misc
  • python-openid-2.1.1
  • python-twitter-0.5
  • python-yadis-1.1.0
  • pytz-2008b
  • simplejson-1.9.1
  • textile-2.0.11
  • vobject-0.6.6
  • ybrowsera

など、Pythonで良く使うモノが入っている。

manage.pyを拡張していて、これらをSite.addsitedirを使って動的に追加しているので、

いちいち足りないモジュールをeasy_installなどで追加することなくすぐに使えるようだ。

しかし、PILなどpythonオンリーじゃないモジュールやライブラリは当然、別途インストール。

svn checkout http://svn.pinaxproject.com/pinax/trunk/ pinax

でtrunk版を落として

その後は、面倒なsettings.pyなどの設定なしに

% cd pinax
% cd projects/complete_project/
% python manage.py syncdb
% python manage.py runserver

で、豊富なアプリがいきなり動く。

ちょっとだけ試してみたい人には非常にうれしい。

もちろんローカル環境でなく公開するなら、それなりの設定は必要。

しかし、

pinax/projects/complete_project/deploy

  • complete_project.fcgi
  • complete_project.wsgi
  • modpython.py

などが存在しているし、ドキュメントにも詳しく書かれているので本番で使うのにあちこち調べまくる心配はなさそうだ。

Pluginを使ったときに、どのようなファイルの構成などをどうするか解説してあるBLOGや本はあまりないと思うので、

pinaxの構成や仕組みを参考にするとよいかもしれない。

Pythonのプロジェクトだけあって、ドキュメントもtrunk版のものがちゃんある。

Installation ? Pinax v0.7.0dev documentation

ただし、それぞれのPluginアプリは、それらについているドキュメントのようだ。

さて、pinaxを使用し、実際に稼動しているWebサービスには

などがある、

どのサービスもユーザー視点で見ると微妙な感じだが、どうやって実装しているか考えながら眺めると面白い。

まだ、ちょっと動かしてみただけだけど、もし使えそうなら

いろいろやってみようかと思う。

ちなみに、syncdb、runserverで動かした直後のpinaxの画面

ログイン画面

http://static.flickr.com/3121/3150462012_94390dbb38.jpg

ログイン直後の個人設定の画面

http://static.flickr.com/3264/3149629759_e16cf6660e.jpg

ユーザーごとにタイムゾーンを選択可能

http://static.flickr.com/3266/3149629795_1f04824dda.jpg

友達の招待も実装済み

http://static.flickr.com/3259/3150462104_0e8628689f.jpg

ちなみに管理画面(クリックでオリジナルサイズ)

http://static.flickr.com/3217/3150474772_f250a1a43e.jpg