Entries from 2007-02-01 to 1 month

[TurboGears] 同人誌情報サイトを作成する。その9

はじめに この記事は、id:SumiTomohiko:20070220:1171972647の続きです。 公開 同人誌情報サイトを公開しました。以下のURLからアクセスできます。 http://nekomimists.ddo.jp/doujin/ まだ中身は空っぽですが、徐々に増やしていく予定です。

[TurboGears] メソッド全体をトランザクションに含める@transactionデコレータ

環境 この記事の内容は、TurboGears 1.0.1, SQLite 3.3.5で確認しました。 @transactionデコレータ Rapid Web Applications with TurboGears: Using Python to Create Ajax-Powered Sites (Prentice Hall Open Source Software Development Series)作者: Mar…

[TurboGears][SQLObject][SQLite] TurboGearsでSQLiteのトランザクションの隔離レベルを設定する方法

環境 この記事の内容は、TurboGears 1.0.1, SQLObject 0.7.1, SQLite 3.3.5で確認しました。 隔離レベルの設定方法 排他ロックを行う場合、以下のようなコードを記述します。ここで、projはアプリケーションのパッケージ名とします。 transaction = proj.mod…

[TurboGears] ワンタイムトークンを追加するデコレータ

はじめに ウェブアプリケーションでは、ブラウザの「戻る」ボタン対策や二重送信防止のために、ワンタイムトークンをフォームに追加することがあります。今回、TurboGearsでワンタイムトークンを扱う一連のクラスを作成しました。作成したのは、 ワンタイム…

[TurboGears] 同人誌情報サイトを作成する。その8

はじめに この記事は、id:SumiTomohiko:20070218:1171826263の続きです。 中間リリース 同人誌情報サイトにお気に入り機能を追加しました。 http://nekomimists.ddo.jp/doujin/ ソースコードは、以下からダウンロードできます。 http://nekomimists.ddo.jp/~…

[TurboGears] turbogears.identity.currentオブジェクトは、テンプレート内ではtg.identity。

環境 この記事の内容は、TurboGears 1.0.1で確認しました。 identity turbogears.identityは、モジュールです。このため、turbogears.identity.currentをコントローラ内で使おうと思ったら、 from turbogears import identity # identity.currentを使う。 と…

[TurboGears] redirect関数の引数にurl関数の戻り値を与えてはならない。

環境 この記事の内容は、TurboGears 1.0.1で確認しました。 redirect TurboGearsではリダイレクトするのにturbogears.controllers.redirect関数を使用します。 redirect("/foo/") 一方、URLの先頭に設定ファイルのserver.webpathの値を加えるturbogears.cont…

[Linux] 外付けUSBハードディスクをまるごとxfsでフォーマットする方法

環境 この記事の内容は、Ubuntu Linux 6.10で確認しました。 手順 手順は、以下の通りです。 dmesgでデバイスファイルを調べる。 fdiskでパーティションを作成する。 xfsでフォーマットする。 dmesgでデバイスファイルを調べる。 外付けUSBハードディスクを…

[TurboGears] 同人誌情報サイトを作成する。その6

はじめに この記事は、id:SumiTomohiko:20070216:1171626374の続きです。 中間リリース 同人誌情報サイトにアカウント登録、ログイン機能を追加しました。 http://nekomimists.ddo.jp/doujin/ ソースコードは、以下からダウンロードできます。 http://nekomi…

[TurboGears] 同人誌情報サイトを作成する。その7

はじめに この記事は、id:SumiTomohiko:20070216:1171774835の続きです。 中間リリース 同人誌情報サイトにコメント機能を追加しました。 http://nekomimists.ddo.jp/doujin/ ソースコードは、以下からダウンロードできます。 http://nekomimists.ddo.jp/~to…

[TurboGears] 同人誌情報サイトを作成する。その5

はじめに この記事は、id:SumiTomohiko:20070216:1171601579の続きです。 中間リリース 同人誌情報サイトで見付かった、いくつかのバグを修正しました。以下のURLからアクセスできます。 http://nekomimists.ddo.jp/doujin/ ソースコードは、以下からダウン…

[TurboGears] 同人誌情報サイトを作成する。その4

はじめに この記事は、id:SumiTomohiko:20070201:1171552714の続きです。 中間リリース 同人誌情報サイトのうち、著作者を登録、編集、削除、閲覧する機能ができました。以下のURLからアクセスできます。 http://nekomimists.ddo.jp/doujin/ ソースコードは…

[TurboGears] TurboGearsのためのregistration

はじめに この記事は、Registration For TurboGearsの日本語訳です。 これはなに? この登録パッケージは、新規ユーザ登録とメンテナンスに共通した機能をより簡単にするために設計された、TurboGearsで使用するテンプレートの集まりです。これは、TurboGears…

[TurboGears] 同人誌情報サイトを作成する。その2

はじめに この記事は、id:SumiTomohiko:20070201:1170347859の続きです。 中間リリース 同人誌情報サイトのうち、作品を登録、編集、削除、閲覧する機能ができました。以下のURLからアクセスできます。 http://nekomimists.ddo.jp/doujin/ ソースコードは、…

[TurboGears] master.kidをいじると、"TypeError: 'NoneType' object is not callable"が発生する、ことがある。その4

環境 この現象は、TurboGears 1.0.1で確認しました。 はじめに この記事は、id:SumiTomohiko:20070214:1171463510の続きです。 現象 id:SumiTomohiko:20070214:1171449131と同じです。 対策 CherryPyを再起動します。 原因 分かりません。 詳細 以下のような…

[TurboGears] 同人誌情報サイトを作成する。その3

はじめに この記事は、id:SumiTomohiko:20070201:1171520479の続きです。 中間リリース 同人誌情報サイトのうち、サークルを登録、編集、削除、閲覧する機能ができました。以下のURLからアクセスできます。 http://nekomimists.ddo.jp/doujin/ ソースコード…

[TurboGears] master.kidをいじると、"TypeError: 'NoneType' object is not callable"が発生する、ことがある。その3

環境 この現象は、TurboGears 1.0.1で確認しました。 はじめに この記事は、id:SumiTomohiko:20070214:1171461349の続きです。そこで取り上げられている問題が再発しました。 現象 id:SumiTomohiko:20070214:1171461349の現象と同じです。なぜか、ブラウザか…

[TurboGears] master.kidをいじると、"TypeError: 'NoneType' object is not callable"が発生する、ことがある。その2

環境 この現象は、TurboGears 1.0.1で確認しました。 はじめに この記事は、id:SumiTomohiko:20070214:1171449131の続きです。そこで取り上げられている問題が再発しました。 現象 id:SumiTomohiko:20070214:1171449131の現象と同じです。 原因 やはり、分か…

[TurboGears] master.kidをいじると、"TypeError: 'NoneType' object is not callable"が発生する、ことがある。

環境 この記事の内容は、TurboGears 1.0.1で確認しました。 現象 master.kidを書き換えると、以下のエラーが発生します。 500 Internal error The server encountered an unexpected condition which prevented it from fulfilling the request. Page handle…

[TurboGears] ウィジェットに渡したvalue変数は、テンプレート内では辞書になる。

環境 この記事の内容は、TurboGears 1.0.1で確認しました。 現象 turbogears.widgets.forms.CompoundInputWidgetクラスを継承しているクラス(Formクラスなど)のdisplayメソッドのvalue引数に属性を持つオブジェクトを渡すとします。例えば、 class Foo: pa…

[Django][TurboGears] Djangoはブラウザから送信された生データを扱えるところが強い。

Djangoの利点のひとつとして、ブラウザから送信された生データを扱えるという点があります。なので、 ひとつのURLにおいて、押されたボタンに応じて処理を分ける。例えば、同じフォームの中に「更新」ボタンと「削除」ボタンがある場合など。 スキーマヴァリ…

[TurboGears] TurboGears関連のウェブサイト一覧

はじめに TurboGearsは複数の製品から構成されており、そのためドキュメントが一ヶ所にまとまっていません。そこで、TurboGearsに関連する情報が記載されているウェブサイトを一覧にしてみました。参考になれば幸いです。 ウェブサイト一覧 製品名 サイト名 …

[TurboGears] フォームの中にあるウィジェットのIDは、「_」となる。

環境 この記事の内容は、TurboGears 1.0.1で確認しました。 現象 例えば、以下のようなフォームのウィジェットを作成します。 from turbogears import widgets class Foo(widgets.Form): def __init__(self): self.text_widget = widgets.TextField(name="ba…

[Django] TurboGearsと比較してみると、Djangoはいい意味で底が浅い。

私はDjangoで日本ひげ男協会を、TurboGearsでブログと同人誌情報サイトを作りました(同人誌情報サイトは開発中)。あまり大したものは作っていませんが、ふたつのPythonのフレームワークを使って、Djangoに感じたことを書きます。題名にもつけましたが、Dja…

[TurboGears] フォームのウィジェットをつくるときは、turbogears.widgets.Formを継承する。

環境 この記事の内容は、TurboGears 1.0.1で確認しました。 やりたいこと フォーム全体をウィジェットとして作成したいとします。つまり、Kidテンプレートの中で、 ${foo.display(value)} とすると、 <form> : </form> が出力されるようなウィジェットをつくることを考え…

[TurboGears] 複数のコントローラをパッケージにまとめる。

問題点 TurboGearsでは、新規にプロジェクトを作成すると、//controllers.pyというファイルが生成され、ここにRootコントローラが置かれます。しかし大規模なプロジェクトではcontrollers.pyにすべてのコントローラを記述することは難しく、関連するコントロ…

[TurboGears] @paginate()

注意 この記事は、1.0/PaginateDecorator - TurboGears Documentationの日本語訳です。 状態 公式 @paginateデコレータは、クエリの結果を透過的に分割し、より簡単にあるいはより使い易く表示するようにします。paginateデコレータが定義されているコントロ…

[デスノート] デスノートフォントで、スケジュール帳用の注意書きを作成しました。

こんなのを作ってみました。フォントは、暖かい雪さんのを使用させていただきました。フォントをUbuntu Linuxにインストールする方法については、@IT: Windows用のTrueTypeフォントを使うには(xfs編)を参考にしました。オープンドキュメント形式とPDF形式…

[TurboGears] 同人誌情報サイトを作成する。その1

趣旨 私は同人誌を頻繁に読みます。一次創作も二次創作も読めば、評論などを読むこともあります。その中には大変面白いものもあり、誰かにその本を勧めたくなります。そんな同人誌を読んだときの感想を言い合えるような場があれば、同人誌即売会で気に入る本…