Entries from 2007-01-01 to 1 month

[TurboGears] Tabberウィジェットは、JavaScriptで動作内容を設定している。

環境 この記事の内容は、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] 同一名のパラメータがリクエストに含まれていた場合、変数はリストになる。

環境 この記事の内容は、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][Genshi] Genshiの語源は日本語である。

TurboGearsのバージョン1.1からは、テンプレートエンジンはKidからGenshiに変更される予定になっていますが、このGenshiという名前は、日本語を語源としています。Genshi - Tracの上部にあるロゴをみると、"GENSHI"というアルファベットの後ろに漢字で「原糸…

[Django] 日本ひげ男協会のサイトを作成する。その10

注意 この記事は、id:SumiTomohiko:20070129:1170018713の続きです。 環境 この記事の内容は、Ubuntu 6.10, Apache 2.0.55, Python 2.4.4, Django 0.95で確認しました。 DjangoをFastCGIで動かす。 サイトの作成が大方終ったので、公開する環境を用意する練…

[Django][CherryPy] DjangoをCherryPyで動かす。

環境 この記事の内容は、CherryPy 2.2.1, DjangoCerise 1.1, Django 0.95で確認しました。 結果 Run your Django app with the CherryPy serverにしたがって、DjangoをCherryPyで動かしてみましたが、重いです。

[Apache][Python][PHP][SQLite] SQLiteを使用するとき、mod_phpとmod_pythonは共存できない。

環境 この記事の内容は、Ubuntu 6.10, Apache 2.0.55, Python 2.4.4, PHP 5.1.6, SQLite 3.3.5で確認しました。 現象 mod_pythonを通してSQLiteのデータベースにアクセスすると、「対応していないデータベースの形式である」という旨のエラーになります(メ…

[Django] 日本ひげ男協会のサイトを作成する。その9

注意 この記事は、id:SumiTomohiko:20070127:1169923192の続きです。 環境 この記事は、Ubuntu 6.10, Python 2.4, Django 0.95, SQLite 3.3.5で確認しました。 フィルタ Webアプリケーションを作成すると、モデルの内容を加工して表示する場面がしょっちゅう…

[Django] 日本ひげ男協会のサイトを作成する。その8

注意 この記事は、id:SumiTomohiko:20070127:1169916076の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 アクセス制限 前回作成した編集画面は、URLを直に指定すれば、誰でもアクセスできるようになっています。…

[Django] 日本ひげ男協会のサイトを作成する。その7

注意 この記事は、id:SumiTomohiko:20070126:1169833683の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95, Firefox 2.0.0.1で確認しました。 編集画面 今回は編集画面を作成します。会員登録画面と似ているので楽勝だろうと思いき…

[Django] 日本ひげ男協会のサイトを作成する。その4

注意 この記事は、id:SumiTomohiko:20070126:1169768661の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 画像を表示する。 日本ひげ男協会のサイトでは、会員のひげの写真をアップロードして、みんなで自慢しあ…

[Django] 日本ひげ男協会のサイトを作成する。その3

注意 この記事は、id:SumiTomohiko:20070125:1169742683の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 Userクラスにパスワードを追加する。 前回までのUserクラスにはパスワードがありませんでした。これでは…

[Django] 日本ひげ男協会のサイトを作成する。その6

注意 この記事は、id:SumiTomohiko:20070126:1169824898の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 メニュー これまで会員登録や一覧画面などを実装してきましたが、それらはどれもURLを直に指定して動作さ…

[Django] 日本ひげ男協会のサイトを作成する。その5

注意 この記事は、id:SumiTomohiko:20070126:1169809341の続きです。 環境 この記事の内容は、Ubuntu 6.10, Python 2.4, Django 0.95で確認しました。 ログイン ここまでで、会員を登録し、一覧表示する機能がなんとかできました。あと必要な機能は、自分の…

[Django] 日本ひげ男協会のサイトを作成する。その2

注意 この記事は、id:SumiTomohiko:20070119:1169239577の続きです。 前回からの変更点 アプリケーション名の変更 前回はアプリケーション名を"web"として作成しましたが、これを"user"に変更しました。 Userモデルの変更 会員の情報を見直し、モデルを変更…

[FreeBSD][TurboGears] CherryPyをデーモン化する。

CherryPyを起動するとき、 $ python start-project.py としますが、これだとプロセスはフォアグラウンドで動作します。これをFreeBSDでデーモン化するには、 $ daemon -f python start-project.py とします。daemonコマンドは、その名の通りプロセスをデーモ…

[TurboGears] ブログを作成する。その7

注意 この記事は、id:SumiTomohiko:20070122:1169468252の続きです。 mod_python, できませんでした。 以下の文献を参考にしながらtgdiaryをmod_pythonで動かそうとしてみたのですが、できませんでした。 mod_python - nogosui.org id:t2ru:20060916:1158384…

[TurboGears] ブログを作成する。その6

注意 この記事は、id:SumiTomohiko:20070120:1169310317の続きです。 カレンダー 今回は、tgdiaryにカレンダーをつけることにします。カレンダーは、以下の外観をしています。仕様は、以下のように定めました。 記事を表示したら、その記事がある年月をカレ…

[TurboGears] ブログを作成する。その8

注意 この記事は、id:SumiTomohiko:20070122:1169487782の続きです。 エラー画面 現在のtgdiaryでは、処理中に例外が発生した場合、画面にスタックトレースが表示されます。これは格好悪いので、例外発生時には他の画面に遷移するようにします。遷移先は、/s…

[TurboGears] ブログを作成する。その7

注意 この記事は、id:SumiTomohiko:20070122:1169468252の続きです。 ログ 今回は、tgdiaryにログ機能を追加します。といっても、TurboGearsに特別な仕組みがあるわけではなく、Pythonに備わっている機能をそのまま使用します。ログは、プロジェクトのトップ…

[Python] UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。

環境 この記事の内容は、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…

[TurboGears] 認証関係の例外

環境 この記事の内容は、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にあります。以…

[TurboGears] ブログを作成する。その5

注意 この記事は、id:SumiTomohiko:20070119:1169220734の続きです。 入力値検証 今回は、フォームで入力された値を検証する機能を追加します。検証には、ウィジェットを使用します。ウィジェットのフィールドには、ヴァリデータを設定することができるので…

[Django] 日本ひげ男協会のサイトを作成する。その1

趣旨 イグ・ノーベル賞 大真面目で奇妙キテレツな研究に拍手!作者: マーク・エイブラハムズ,福嶋俊造出版社/メーカー: 阪急コミュニケーションズ発売日: 2004/03/19メディア: 単行本購入: 1人 クリック: 329回この商品を含むブログ (62件) を見る上記の本に…

[Django] インストール

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…

[TurboGears] ブログを作成する。その5

注意 この記事は、id:SumiTomohiko:20070119:1169220734の続きです。 ソースコード tgdiaryのソースコードtgdiary.tar.gzをアップロードしました。http://nekomimists.ddo.jp/~tom/repository/tgdiary.tar.gzからダウンロードすることができます。なお、適宜…

[TurboGears] ブログを作成する。その4

注意 この記事は、id:SumiTomohiko:20070118:1169099368の続きです。 その3からの変更点 id:SumiTomohiko:20070118:1169099368のあと、画面のデザインを変更し、記事を編集、削除する機能を追加しました。現在は、以下のような画面になっています。デザイン…

[SQLObject] 外部キーを検索条件にするときは、「キーID」を使用する。

環境 この記事の内容は、SQLObject 0.9で確認しました。 問題点 次のようなモデルがあるとします。 from sqlobject import * class Parent(SQLObject): children = MultipleJoin('Child') class Child(SQLObject): parent = ForeignKey('Parent') ここで、Pa…

[TurboGears] ブログを作成する。その3

注意 この記事は、id:SumiTomohiko:20070117:11690428370の続きです。 記事入力画面 日記の記事を入力する機能を作成します。tgdiary/controller.pyに、以下のメソッドを追加します。addメソッドは、入力画面を表示するメソッドで、doaddメソッドは、入力画…

[TurboGears] ブログを作成する。その2

注意 この記事は、id:SumiTomohiko:20070115:1168855922の続きです。 ユースケース ここで、これから作るブログの機能を整理します。具体的には、ユースケースを作ることで、必要な機能をまとめます。このブログは、個人的に使用するものですが、それでも記…