タグ

ブックマーク / imagawa.hatenadiary.jp (5)

  • Django1.4のプロジェクト構成案 - 今川館

    Python, Django | 16:19Django1.4からプロジェクト構成が変わった今までDjango1.3までを使っていて、最近1.4のDjangoを使い始めました。1.3と1.4ではdjango-admin.py startprojectで生成されるプロジェクト構成が違います。どう違うかというと以下のようにmanage.pyがDjangoプロジェクトの外に出ます。 src/ ├── dj13prj # Django1.3のstartprojectで作ったプロジェクト │   ├── __init__.py │   ├── manage.py # Djangoプロジェクトの中にmanage.py │   ├── settings.py │   └── urls.py │ └── dj14prj # Django1.4のstartprojectで作ったプロジェクト ├── dj14

  • 何段にも深くなるループを絶対に一段で書く方法 - 今川館

    ループの中でループを回す処理は読みにくい 例えば友達が5人いて、サンドイッチが3種類あって、2種類の飲み物を配る処理を作るとします。 こういう場合、for文を何段にもネストするプログラムを書かざるを得ないときがありますよね。 for friend in friends: for sandwich in sandwiches: for drink in drinks: do_something(friend, sandwich, drink) そもそも、こういうプログラムを書く前は、当にそういう処理で正しいのか考えた方がいいですが、とにかくこんなコードは読みにくいです。 ループの中でループを回すプログラムを字下げして書くことが読みにくさに寄与していると思うのですが、pythonだと字下げは必須なので悩ましいものです。 itertools.productを使えば絶対に1段で書ける しかし、こ

    何段にも深くなるループを絶対に一段で書く方法 - 今川館
  • DjangoのORMを使って検索フォームを作るときに少しでも楽をしたい - 今川館

    02:14djangoのQuerySet.filterを都度呼ぶのは面倒くさいdjangoで検索画面を作るとき、よくこういうプログラムを書くと思う。 検索条件を入力する為のFormを作る。 Formの入力値で入力されているものだけ条件指定する。入力されていない条件は絞り込みしない。そういうとき、こんな風にプログラムを書くのが結構な苦痛だ。 from django.db.models import Q persons = Person.objects.all() dct = {"name" : "oyakata"} if dct.get("name"): persons.filter(name=dct["name"]) if dct.get("age"): # ORの条件指定にしなければならない -> 面倒くさい # 自分のフィールドだけでなく、ForeignKeyのフィールドも見なければな

    nullpobug
    nullpobug 2011/06/26
    DSLっぽくておもしろい
  • 信頼を失ったとき・信頼できなくなったとき - 今川館

    今日は仕事で非常に残念な事があった。良い機会なので「信頼」に関して思った事、気づいた事を書いておこうと思う。いつも自分ばかりが信頼を失うわけではない「信頼」という言葉を語る人は多い。そういう場合、たいていはいかに信頼が大切で、信頼を失うことがいけないかを説いている。つまり、話を聞かされる方が「信頼を失う人」と仮定しているのだ。だが、人生いつもいつも自分の方が信頼を失っているばかりでもない。自分が他人に信頼し、期待を持っていたのに裏切られてしまうことも沢山ある。そういうとき、瞬間的には怒りで相手を批判したり、なじったりしてしまうだろう。そうすることで関係が悪化して収拾つかなくなるから、怒るのはやめろと説く人もいる。また、同僚が怒っていたり、イライラしている姿は醜いからやめた方が良いと考える人もいる。相手を信頼できなくなると突然様々なコストが発生する大抵の場合、腹は立つけどそこはぐっとこらえて

  • minimockの使い方 - 今川館

    pythonのモックとしてminimockというライブラリがある。 日語のドキュメント・ブログが見当たらないので使い方をここに書いておく。 minimockを構成するモジュール mock関数 -- モックを当てる。 restore関数 -- 当てたモックを解除する。 Mockクラス -- mockより詳細にモックを当てるために使うオブジェクト。 mock関数とrestore関数でモックを当てる・解除するというのはわかりやすい。 しかし、複雑なケースではMockオブジェクトを使う必要があるのでここで説明する。 あと、minimockを使う上ではまりやすい点を書く。 基的な使い方 minimockの基は モックに差し替えるモジュールをインポートする。 mock関数を呼ぶ。或いはMockインスタンスを代入する。 使い終わったらrestoreで戻す。 である。 例えば、以下のphilosop

    minimockの使い方 - 今川館
  • 1