Entries from 2007-01-01 to 1 month
環境 この記事の内容は、TurboGears 1.0.1で確認しました。 疑問点 TurboGears Widget BrowserのTabberをみると、サンプルには、 template = """<div class="tabber"> <div class="tabbertab"><h2>Tab 1</h2></div> <div class="tabbertab"><h2>Tab 2</h2></div> <div class="tabbertab"><h2>Tab 3</h2></div> </div>""" としか書かれていません。なぜこれだけの記述でタブが実現できるのか不思議だっ…
環境 この記事の内容は、TurboGears 1.0.1で確認しました。 詳細 次のようなコントローラを作成します。 class Root(controllers.RootController): def test(self, param): return str(param) ここでCherryPyを立ち上げ、http://127.0.0.1:8080/test?param=f…
拝啓新春とは申しながらまだ堪えがたい寒さが続きますが、いかがお過ごしでしょうか。さて、このたび、日本ひげ男協会を設立する次第となりました。日本ひげ男協会とは、日本のひげ男たちが自分のひげを見せびらかし、誇らしげに自慢して悦にいるというキモ…
TurboGearsのバージョン1.1からは、テンプレートエンジンはKidからGenshiに変更される予定になっていますが、このGenshiという名前は、日本語を語源としています。Genshi - Tracの上部にあるロゴをみると、"GENSHI"というアルファベットの後ろに漢字で「原糸…
注意 この記事は、id:SumiTomohiko:20070129:1170018713の続きです。 環境 この記事の内容は、Ubuntu 6.10, Apache 2.0.55, Python 2.4.4, Django 0.95で確認しました。 DjangoをFastCGIで動かす。 サイトの作成が大方終ったので、公開する環境を用意する練…
環境 この記事の内容は、CherryPy 2.2.1, DjangoCerise 1.1, Django 0.95で確認しました。 結果 Run your Django app with the CherryPy serverにしたがって、DjangoをCherryPyで動かしてみましたが、重いです。
環境 この記事の内容は、Ubuntu 6.10, Apache 2.0.55, Python 2.4.4, PHP 5.1.6, SQLite 3.3.5で確認しました。 現象 mod_pythonを通してSQLiteのデータベースにアクセスすると、「対応していないデータベースの形式である」という旨のエラーになります(メ…
注意 この記事は、id:SumiTomohiko:20070127:1169923192の続きです。 環境 この記事は、Ubuntu 6.10, Python 2.4, Django 0.95, SQLite 3.3.5で確認しました。 フィルタ Webアプリケーションを作成すると、モデルの内容を加工して表示する場面がしょっちゅう…
注意 この記事は、id:SumiTomohiko:20070127:1169916076の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 アクセス制限 前回作成した編集画面は、URLを直に指定すれば、誰でもアクセスできるようになっています。…
注意 この記事は、id:SumiTomohiko:20070126:1169833683の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95, Firefox 2.0.0.1で確認しました。 編集画面 今回は編集画面を作成します。会員登録画面と似ているので楽勝だろうと思いき…
注意 この記事は、id:SumiTomohiko:20070126:1169768661の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 画像を表示する。 日本ひげ男協会のサイトでは、会員のひげの写真をアップロードして、みんなで自慢しあ…
注意 この記事は、id:SumiTomohiko:20070125:1169742683の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 Userクラスにパスワードを追加する。 前回までのUserクラスにはパスワードがありませんでした。これでは…
注意 この記事は、id:SumiTomohiko:20070126:1169824898の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 メニュー これまで会員登録や一覧画面などを実装してきましたが、それらはどれもURLを直に指定して動作さ…
注意 この記事は、id:SumiTomohiko:20070126:1169809341の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 ログイン ここまでで、会員を登録し、一覧表示する機能がなんとかできました。あと必要な機能は、自分の…
注意 この記事は、id:SumiTomohiko:20070119:1169239577の続きです。 前回からの変更点 アプリケーション名の変更 前回はアプリケーション名を"web"として作成しましたが、これを"user"に変更しました。 Userモデルの変更 会員の情報を見直し、モデルを変更…
CherryPyを起動するとき、 $ python start-project.py としますが、これだとプロセスはフォアグラウンドで動作します。これをFreeBSDでデーモン化するには、 $ daemon -f python start-project.py とします。daemonコマンドは、その名の通りプロセスをデーモ…
注意 この記事は、id:SumiTomohiko:20070122:1169468252の続きです。 mod_python, できませんでした。 以下の文献を参考にしながらtgdiaryをmod_pythonで動かそうとしてみたのですが、できませんでした。 mod_python - nogosui.org id:t2ru:20060916:1158384…
注意 この記事は、id:SumiTomohiko:20070120:1169310317の続きです。 カレンダー 今回は、tgdiaryにカレンダーをつけることにします。カレンダーは、以下の外観をしています。仕様は、以下のように定めました。 記事を表示したら、その記事がある年月をカレ…
注意 この記事は、id:SumiTomohiko:20070122:1169487782の続きです。 エラー画面 現在のtgdiaryでは、処理中に例外が発生した場合、画面にスタックトレースが表示されます。これは格好悪いので、例外発生時には他の画面に遷移するようにします。遷移先は、/s…
注意 この記事は、id:SumiTomohiko:20070122:1169468252の続きです。 ログ 今回は、tgdiaryにログ機能を追加します。といっても、TurboGearsに特別な仕組みがあるわけではなく、Pythonに備わっている機能をそのまま使用します。ログは、プロジェクトのトップ…
環境 この記事の内容は、Ubuntu 6.10, Python 2.4で確認しました。 現象 ユニコード文字列をstr関数に与えると、UnicodeEncodeErrorが発生します。 $ python Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02) [GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13…
環境 この記事の内容は、Ubuntu 6.10, Python 2.4, TurboGears 1.0で確認しました。 認証関係の例外 TurboGearsで使用される認証関係の例外は、/usr/lib/python2.4/site-packages/TurboGears-1.0-py2.4.egg/turbogears/identity/exceptions.pyにあります。以…
注意 この記事は、id:SumiTomohiko:20070119:1169220734の続きです。 入力値検証 今回は、フォームで入力された値を検証する機能を追加します。検証には、ウィジェットを使用します。ウィジェットのフィールドには、ヴァリデータを設定することができるので…
趣旨 イグ・ノーベル賞 大真面目で奇妙キテレツな研究に拍手!作者: マーク・エイブラハムズ,福嶋俊造出版社/メーカー: 阪急コミュニケーションズ発売日: 2004/03/19メディア: 単行本購入: 1人 クリック: 329回この商品を含むブログ (62件) を見る上記の本に…
setuptoolsのeasy_installを使えば、以下のように簡単にDjangoをインストールできます。 $ sudo easy_install Django-0.95.tar.gz [~/packages] Password: Processing Django-0.95.tar.gz Running Django-0.95/setup.py -q bdist_egg --dist-dir /tmp/easy_i…
注意 この記事は、id:SumiTomohiko:20070119:1169220734の続きです。 ソースコード tgdiaryのソースコードtgdiary.tar.gzをアップロードしました。http://nekomimists.ddo.jp/~tom/repository/tgdiary.tar.gzからダウンロードすることができます。なお、適宜…
注意 この記事は、id:SumiTomohiko:20070118:1169099368の続きです。 その3からの変更点 id:SumiTomohiko:20070118:1169099368のあと、画面のデザインを変更し、記事を編集、削除する機能を追加しました。現在は、以下のような画面になっています。デザイン…
環境 この記事の内容は、SQLObject 0.9で確認しました。 問題点 次のようなモデルがあるとします。 from sqlobject import * class Parent(SQLObject): children = MultipleJoin('Child') class Child(SQLObject): parent = ForeignKey('Parent') ここで、Pa…
注意 この記事は、id:SumiTomohiko:20070117:11690428370の続きです。 記事入力画面 日記の記事を入力する機能を作成します。tgdiary/controller.pyに、以下のメソッドを追加します。addメソッドは、入力画面を表示するメソッドで、doaddメソッドは、入力画…
注意 この記事は、id:SumiTomohiko:20070115:1168855922の続きです。 ユースケース ここで、これから作るブログの機能を整理します。具体的には、ユースケースを作ることで、必要な機能をまとめます。このブログは、個人的に使用するものですが、それでも記…