2010年3月14日日曜日

Django:プロジェクトの立ち上げ方

 Django のプロジェクトを一から立ち上げるときのやり方。基本は Django project.jp のチュートリアルにあるのだが、それ以外の分も含めて。

  1. Django のインストールしてある Python の path が通った DOS 窓を開く (^^;
  2. プロジェクトを作るディレクトリに移動して
    >django-admin.py startproject new-project
    を実行
  3. settings.py を変更

    1. 24行目のTIME_ZONE を 'America/Chicago' から 'Asia/Tokyo' へ

    2. 28行目のLANGUAGE_CODE を 'en-us' から 'ja' へ

    3. 66行目の ROOT_URLCONF の 'new-project.urls' から new-project を削除

  4. DOS 窓からプロジェクトを作ったディレクトリに移動して python manage.py runserver 8080 を実行した後、ブラウザから localhosit:8080 にアクセスし、
    It worked!
    Congratulations on your first Django-powered page.
    が表示されることを確認
    # ポート8080 は eclipse が使う
  5. setting.py のデータベースの設定

  6. python manage.py syncdb を実行

  7. python manage.py startapp new-app を実行してアプリケーションを作成

  8. settings.py の INSTALLED_APPS に 'new-app' を追加
  9. modles.py,views.py などの先頭に '# -*- coding: utf-8 -*-' を追加

2010年3月13日土曜日

Django:render_to_response で cookie を使う方法

 render_to_response を使って cookie を使う方法、昨日寝ながら考えた。
return render_to_response('item_search/item_list.html',
{'item_list':item,'title':search_tag},
context_instance=RequestContext(request))
r = render_to_response('item_search/item_list.html',
{'item_list':item,'title':search_tag},
context_instance=RequestContext(request))
cookie = ...
r.set_cookie('search_key', cookie)
return r
 ぐらいの感じでよいのかな?

2010年3月12日金曜日

Django:cookie を使うときは、render_to_response を使えないようだ

 render_to_response を使うと cookie を投げなくなった件、調べてみた。

 よく見るとコードが、
response = HttpResponse()
cookie = ...
response.set_cookie('search_key', cookie)
....
t = loader.get_template('x.html')
c = Context({'item_list':item,.....
response.write(t.render(c))
return response
 となっている。

 render_to_response は新たに HttpRespons を作るわけだから、cookie を渡せるわけがない。

 では、cookie を使ってコンテキストプロセッサ経由でテンプレートに値を渡したい場合は、
t = loader.get_template('x.html')
c = RequestContext({'item_list':item,.....
response.write(t.render(c))
return response
 と書いてやれば OK。

 つまらんことに時間を食ってしまったまたひとつ利口になった (^^;

 

2010年3月3日水曜日

Django:render_to_response と cookie の謎

 解決編はこちら

 Django のプロジェクトのデプロイを始めた。

 やっているうちに、テンプレートに context を渡す必要がでてきて、views.py のソースを
t = loader.get_template('item_search/item_list.html')
c = Context({'item_list':item,'title':search_tag})
response.write(t.render(c))
return response
 から
return render_to_response('item_search/item_list.html',
{'item_list':item,'title':search_tag},
context_instance=RequestContext(request))
 に変えた。

2010年3月2日火曜日

XREA:django のデプロイに半日以上かかってしまった

 お客さん用の Django Project を XREA にデプロイしたのだが、思いのほか時間がかかる。

 デプロイだけというわけでもないが、ほぼデプロイで、15:00 から始めて、終わったのが 22:00。

 一日仕事。

 内訳は、
   必要なファイルのインストール 3h ぐらい
   Django の動作確認 1h
   Django プロジェクトのデプロイ 3h

 お仕事でやるにはちょっとかかりすぎだ。マニュアルをまとめるか、バッチを作るスクリプトを書くかかしないと。