2009年10月31日土曜日

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

 今作っているアプリで静的ファイルを読ませる必要が出てきた。

 以前に嵌ったことを思い出してこのブログを調べると、ピッタリなエントリーがあった。このエントリーを見て書いたソースをコピペして...、動かない。
 Page not found のメッセージではちゃんと media/ は定義されてるし、なぜ?

 ふと、コンソールを見ると他の URL を書き換えていない静的ファイルの読み出しはリクエストが失敗しているが、URL を書き換えたものだけが失敗していない。
 ブラウザに直接静的ファイルのディレクトリの URL を入力すると、とんでもないディレクトリ(C:\Python262\lib\site-packages\django/contrib/admin/media\)にアクセスできない、と出てくる。

 色々やった結果、
 django.views.static.serve を呼び出すパターンに 'media' は使えないsettings.py の中で定義している ADMIN_MEDIA_PREFIX と同じ文字列は使えない

# ただし、root の urls.py 以外ではぶつかってもよさそう。

 ということがわかった。パターンを 'media' からドキュメントにある 'site_media' に変更して解決。うーん、古いアプリケーションでは使えていたのだが。1.0 からこうなったのだろうか?元にしたアプリケーションではアプリケーション名が URL に含まれたのでこの問題が起きなかった。
 面倒くさいから深追いはしないが...。

2009年10月30日金曜日

Django ようやくフィルターが使えるようになった

 データベーススペシャリストで勉強したことがだいぶ役に立ってきた。 

 これでようやく全体の構成というか動線の設計に入れる。ここからがまた一苦労か。

2009年10月29日木曜日

Django XX.objects.get() の help



という位置にある。一番下のページを開いて get で検索すると出てくる。

Django XX.objects.get() no

Django eclipse を試してみよう

 ツールの作成が終わったので、ようやく本命の Django のコーディングに戻ったが、これがまた面倒なことに。

 Vz->Wz とエディターを使ってきたのだが、最近のソフトウェア開発環境で使い続けるには無理を感じていた。で、思い切って2年前会社を辞めたあと、自宅のメインマシンを入れ替えたときに Wz をインストールしなかった。

 タコメータの製作は gcc 一本だったのでフリーのエディターで何とか乗り切ったが、データ移行ツールを作ったときに pyscripter で IDE の威力を実感。

 eclispe で Django も出来るそうなので、そっちの環境を構築しようと思う。

 あぁ、また時間が取られる...。

 

2009年10月28日水曜日

Python + SQLIte + TkInter データ移行プログラム、とりあえず動く

 Django でサイトを作っていて、テーブルが増えてしまったとき、テスト用のデータベースを一から作り直さなくても良いように、古いデータベースからテーブルの追加されたデータベースに既存のデータを移行するプログラムを作っていたが、とりあえず動作確認が出来た。

 ということでまた Django に戻って悪戦苦闘。

2009年10月27日火曜日

Python + SQLIte + TkInter Python の文字列は一癖あるらしい

 ネットワークスペシャリストの試験も終わったので作業再開。

 IDE で実行してエラーで止まってはチョコチョコ直すというあまりよろしいとは思えないデバッグを繰り返すが、初物のオンパレードだから仕方あるまい。

 sqlite に喰わせる SQL 文を作るところで

> coercing to Unicode: need string or buffer, list found

 などという見当の付かないエラーが出てきたのでぐぐって見ると、python の文字列の扱いというのは実に変わったオイラの知っている範囲では見たことのないタイプのようだ(こちらこちら)。
 ま、文字コード関連は他の言語でも十二分に複雑怪奇なんだから、まるっとカプセル化してしまうのはありだと思う。



 

2009年10月3日土曜日

Python + SQLIte + TkInter まとまったコードを書いてみたが

 ようやく SQLite と TkInter の小手調べが終わって、長めのコードを書いてみたら、いろいろと引っかかる。

 名前のスコープの範囲というか、デフォルトの省略形が light weight。リストとか辞書とか、やるぐらいならこっちの方にも少し気を使って欲しいのだが...。

 今日は構文エラーが出なくなったところで時間切れ。

 明日は動かしながらデバッグだ。先は長そうだがあと2-3日で何とかしたい。

2009年10月2日金曜日

Python + SQLIte + TkInter ちょっとしたツールを作るつもりが...

 PyScripter を使っているのだが、インタープリターだから、デバッグ実行中にコードを直したら、新しいコードで走ってくれるかと思ったらさにあらず。

 値のコピーのつもりがアドレスのコピーになっていて手こずったり、と思えばそうでもないのか?

 ちょっと凝ったことをやろうとするとやっぱり手ごわい。