2009年1月28日水曜日

[Django]Django から html を吐く

こちらのページを参考に、とりあえず HTML を吐かせた。

 ようやく web アプリケーションフレームワークっぽくなってきた。

2009年1月25日日曜日

[Django]標準の認証フレームワークを使ったときのリダイレクト先

urls.py を

> (r'^accounts/login/$', 'django.contrib.auth.views.login'),

のような形にして認証フレームワークを呼び出した場合、認証成功後のリダイレクト先は、テンプレート(templates\registration\login.html)の

> <input type="submit" value="ログイン" /> / <a href="/polls/accounts/regist/">新規登録</a>
> <input type="hidden" name="next" value="/polls" />
                  
 とあるあたりの type="hidden" の value の後ろ(上の例では /polls)

2009年1月23日金曜日

作業メモ

 Django の組み込みのログイン(django.contrib.auth.views.login)を使って login した後のリダイレクト先が変更できない。

 しばらく嵌りそうだ。

2009年1月20日火曜日

作業メモ:django に静的ファイルを読ませるのに嵌る

 最新Pythonエクスプローラ に載っていた Mall プログラムの一部を Django のチュートリアルにあったプログラムに少しずつ移しているのだが、画面周りの CSS を読み込ませるところがうまくいかず嵌る。
 最初は HTML に吐き出されるパスだけを書き換えていたのだが、よく考えると、URL mapper を Django が持っているのだから、Django のソースも何か書き換えが必要になるはず。

 ということで調べてみるとこんなページが。

 結局は Djmall の url.py にあった

if settings.DEBUG:
urlpatterns += patterns('',
(r'^media/(?P.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),

を追加したのだが、この処置は開発用とのこと。

 リリースがいつになるかわからないが、忘れないようにせねば。


2009年1月19日月曜日

作業メモ:今日は横から攻める

 class を変更するたびに sqlite のファイルを削除すると途中まで入れたデータも全部消えてしまうので、SQLite ControlCenter 日本語版 なるソフトを見つけてデータベースに直接アクセス。
 テーブル一覧を見ると auth_user というテーブルがあり、中を見ると、登録してあるユーザーの情報が保存してある。これが使えればと、'user = models.ForeignKey(User)' と書いて見るとうまくいく。これで悩みがひとつ解決した。

作業メモ

 Django でのユーザ認証を調べているが、ユーザーの識別は models.User.username しかないみたいだ。id number を振ったりはしないのか。

2009年1月10日土曜日

作業メモ:Django ってすげー、てか

 最新 Python エクスプローラの Django ソース (djmall) を動かしてみた。

 とりあえずデータをひとつだけ入れて、...。

 はでぇ...。

 ソースも数はともかく長さは全部数kbyte。

 なるほどねぇ。LL+フレームワークというのはこういうものか。

作業メモ:


 最新 Python エクスプローラの Django ソース (djmall) を動かそうと Python 2.5.2、Django 0.95.4、pysqlite 2.5.1 をインストール。

 python manage.py syncdb

を実行するとなにやらエラーが出たが終了。

ブラウザで http://localhost:8000/admin を開くとうまくいったが、データの編集をしようとすると

pysqlite2._sqlite.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. 


 なるエラーが出る。良く見ると syncdb のエラーも同じ。

text_factory で検索して行くとこんなページこんなページを見つける。
 '.connect(' で Django のソースに検索をかけ、ヒットした数十のなかから C:\Python25\Lib\site-packages\Django-0.95.4-py2.5.egg\django\db\backends\sqlite3\base.py の
 ・先頭付近に import sqlite3
 ・50行目あたりに self.connection.text_factory = sqlite3.OptimizedUnicode
 を追加。

 syncdb では表示が一部文字化けしたが、admin のデータ編集画面は動く。

----
 勘はまだ生きてるかな?

はてなダイヤリーからお引越し

 結構使っている人が多いので何かよいことがあるのだろうと思って、試してみたが(2度目)、HTML は使えないし、アクセス解析もアフェリエイトも貼り付けられないとデメリットばかりで、メリットが見当たらない。編集中に esc を押したらテキストが全部消えてしまうに至って我慢の限界。

 はてなから使い慣れた blogger にお引越し。