ファイルシステムベースのページ作成

flatpages

とりあえずflatpagesアプリケーションなどを参考にすれば、ファイルシステム依存のサイトが作りやすそう。

flatpagesアプリ自体はflatなHTMLをDBMSで格納操作するものだが、これを軸にしてファイルの入出力を考えて行けばよさそうである。

DBMSではなくファイル依存に拘るのは、ページをエディタでさくさくメモ風に書きたいからだ。

もちろんすでにファイルシステム依存で動作させているYii配下の本サイト(cf. Yiiを使う )をDjangoで書き直すためでもある(*1)。

とりあえずDBをキャッシュとして考えて次のようにしようとおもう。

HTTPRequest
 |
 V
時刻比較-->fileが新しい場合-->レンダリング-->DB格納と同時に返信
 |
fileが古い場合
 |
 V
DBのものを返信

DB格納のデータをどこまでレンダリングしたものにするのかは,実際コードを書きつつ考える。

有益参考情報

検索したら次のようなML記事があった。

http://www.mail-archive.com/django-ja@googlegroups.com/msg00136.html

これで言えば 4.にあたる。

4. ファイルから生成したコンテンツを,FlatPagesのようなモデルでキャッシュする.ファイルのタイムスタンプとコンテンツのタイムスタンプを比較して,コンテンツの元ファイルが更新されていればファイルからデータを読み直す.でも,効率がいいかどうかは疑問.

なお、

provider_class というのは, source をレンダして content (HTML フラグメント)を作るヘルパクラスのクラス名です._provider_class_manager がモジュールレベルで定義されていて,クラス名からクラスオブジェクトを必要に応じてロードしたりキャッシュしたりします.将来 markdown とか wikiformat もサポートしようと思っていたので,プラグイン作成用のからくりです :p

というのもやりたいことが同じだ :p

大いに参考にできそうで感謝。ところでこれは2006年の記事だが、その後どうなったんだろう。

flatpagesについてのチュートリアルビデオ

http://showmedo.com/videotutorials/video?name=1750040&fromSeriesID=175

*1: しかしそのためには、PHPで書かれたはてな記法ライブラリhttp://nimpad.jp/hatenasyntax/をDjangoで作らなければならないが、大丈夫だろうか。最悪、同ライブラリだけはPythonからの呼び出しをしてみよう。

this file --> last modified:2012-03-31 13:57:56