TurboGears

もうちょっとだけがんばってみた

分かったのは root.py の RootController にexposeで修飾したメソッドを追加すると、そのメソッドをurlで指定できる。 クラス変数で他のコントローラを設定しておくと、その名前とメソッドをurlで指定できる。 文で分かりやすく書けないのだが、 class RootC…

TurboGears2を予習してみる。

以下の内容は、Subversionのtrunkから取得したコードで試しています。http://svn.turbogears.org/trunk/INSTALL.txt を見ると、PylonsとTurboGearsをそれぞれSuversionのtrunkからとってくるように書いてある。 $ svn co http://pylonshq.com/svn/Pylons/tru…

Lingr

合宿で使ったTurboGears部屋を今後もTurboGearsに興味を持っている方たちの雑談の場として、残すことにしました。 http://www.lingr.com/room/turbogears-ja

TurboGearsでSQLALchemyを使用している場合にpy.testでモデルをテストする方法

test.cfgでdburiをテスト用のDB接続に設定する。 以下はSqliteのオンメモリDBを使う例 sqlalchemy.dburi = "sqlite:///:memory:" model.py内のセットアップを以下のようにする。 def setup_module(module): database.bind_meta_data() database.metadata.eng…

TODOリストアプリケーション

合宿のお題TODOリストアプリケーション とりあえず作ってみた。 http://aodagx.ddo.jp/aodag/todo30.tar.bz2 モデルを考えながら所要時間40分 ウィジェットを使ったのでHTMLを書く手間は省けた ユーザー管理はCatwalkを使う前提追加した方がいいと思うもの …

SQLObjectでMATCH AGAINST を発行する。

http://d.hatena.ne.jp/tasukuchan/20070213/learn_turbogears ■[Python]TurboGearsを勉強するもMATCH AGAINSTできねっすということで勉強がてらMATCH AGAINST を発行する方法 from sqlobject.sqlbuilder import * class Match(SQLExpression): """ >>> Sele…

温泉

lirisさんも参加予定. TGが1人という状態は回避できそう.

nocache デコレーター

メモ def nocache(f): def inner(*arg, **kw): cherrypy.response.headers['Pragma']= 'no-cache' cherrypy.response.headers['Cache-control']= 'no-cache' cherrypy.response.headers['Expires']= 'Thu, 01 Dec 1994 16:00:00 GMT' return f(*arg, **kw) r…

TurboGears勉強会

1/14に世田谷ものづくり学校で日本初?のTurboGears勉強会が開催されました。いつ来てもいつ帰ってもOKという自由な雰囲気のもと、最終的に20名程度で行われました。 内容は、 TurboGearsではじめるO/Rマッパー wsgiでほげほげ(TurboGearsの配備方法) みんな…

TurboGears勉強会

http://groups-beta.google.com/group/turbogears-ja/web/turbogears2007114 TurboGears勉強会が1/14 世田谷ものづくり学校で開催されます。 詳細は上記URL先参照のこと。

ユーザー登録モジュール

TurboGearsのユーザー登録モジュールにregistrationがある。 使い方はいたって簡単。インストールはsetuptoolsで。 easy_install registration TurboGearsプロジェクト作成時にregistrationテンプレートを使う。 tg-admin quickstart -i -s -t registration …

SQLAlchemyのIdentityモデル

TurboGearsのモデルはデフォルトでSQLObjectを使うようになっている。 オプションで、SQLAlchemyを使うことができて、quickstart時の設定でIdentityを使用するようにすると、IdentityモデルもSQLAlchemyのものになる。 このとき、ActiveMapperが使用されてい…

TurboGearsでblog作ってみる(その2)

前後半では収まらんので、その2にします。 では、editBlogの内容だ。 @expose(template="blog.templates.editBlog") @identity.require(identity.not_anonymous()) def editBlog(self, blogId): blog = Blog.get(blogId) if blog.author != identity.current…

TurboGearsでBlog作ってみる(その1)

blogという名前でプロジェクトを作る [C:\works]tg-admin.exe quickstart Enter project name: blog Enter package name [blog]: Do you need Identity (usernames/passwords) in this project? [no] yes Select your provider sqlobject or sqlalchemy [sql…

.9a6

5/10に出てた。 SqlAlchemyはまともに動くだろうか。

PythonとAmazonとXMLと

遊んだ。 結局GWはこれだけかよ。pyamazonとかも考えたが、時間もあることだし自分で書いてみる。 import string import urllib import urllib2 from xml.dom.minidom import parse class Amazon snip... def __createUrl(self, **kwargs): params = ["&AWSA…

以前のエントリが

転記されてます。 http://vlog.blog32.fc2.com/tb.php/15-31aa4641 http://vlog.blog32.fc2.com/

JSON via 0.9a5

以前のエントリで書いたJSONでのはまり続編 http://d.hatena.ne.jp/aodag/20060423/11457866340.9a4では前述のとおりtg_formatがcontrollersに引数できてしまうというバグがありました。 0.9a5ではしっかりなおっていて、kidテンプレートとjson両方に対応し…

SQLAlchemy

TurboGearsのDBアクセス層はSQLObjectが使えていたのだが、0.9a5よりSQLAlchemyも使えるようになった。 さて何が違うかというとSQLObjectはアクティブレコードであり、クラス:テーブル、インスタンス:行という関係がベースになっている。 それらのクラスに…

TurboGears 0.9a5

http://groups.google.co.jp/group/turbogears/browse_thread/thread/88e19836c2f86e18/b0cf78d0c800c2f7?hl=ja#b0cf78d0c800c2f7

JSONでのハマリ

例によって0.9a4でのことですが、jsonを使用した場合のハマリです。jsonを使用する場合は以下のことをしなければならないようです。 allow_json=Trueとしなければならない。 GETパラメータとしてはtg_format=jsonとする。 controlerのメソッド引数にはtg_for…