Python

fabfileの構造化

fabfile.pyって、task数個までならまあ1ファイルでいいんですが、それ以上増えてくるとスクリプト自体がカオスになって収集がつかなくなります。更に似たような、けど微妙に違うtaskをいっぱい定義したりすると名前まで酷くなってきます。こんなかんじに。 @…

PyconJP2011のかんそうぶん

PyCon JP 2011行ってきました。 プログラムひとこと感想 Webフォームウィジェットツールキットを総括する - aodag 途中から参加。種類が多く、機能も使い勝手も千差万別と中々選定が難しいが、やっぱりdeform使っとくのが一番安定しそうな気がした。 Object-…

form.clean_xxxの実行順

重要な追記 コメ欄でぼこすか殴られたので追記。 こういう複数のフィールドにまたがるバリデーションはcleanを使うべきで、↓みたいなコードを書くべきではありません。 この記事の趣旨は今まで不定だと思いこんでたclean_xxxの実行順が実は決まってたという…

デフォルトマネージャという地雷

djangoのモデルデータはマネージャというオブジェクトを介して取得します。独自定義のマネージャを使うことでデフォルトとは違う挙動をさせることができて便利ですが、地雷もありますよという話。http://docs.djangoproject.com/en/1.2/topics/db/managers/#…

デコレータを外す

おはこんばんちわ。情弱王子feizです。最近とある方の影響で自動テストに凝っておりまして、それはもうセルフプレジャーを覚えた猿のようにテストを書いてるとかいないとかな毎日です。 さて Pythonでテストをかいてると、たまにデコレータが邪魔になること…

pythonのimportあれこれ

importでハマって丸一日つぶしたのでメモ。 基本的なことがら Pythonのモジュールインポートのしくみ6.12 import 文このへん読む 今回の教材 feiz@dev % tree /home/feiz/tmp/imp/ |-- ddd.py |-- xxx | |-- __init__.py | |-- aaa.py | `-- eee.py `-- yyy …

クラスベースビューとreverseとDjangoのURLディスパッチ

以下、django1.2.0時点の話です。 参照: クラスベースビューとデコレータとkwargs - logiqboard viewクラスを使ったURL設計 前回の記事でいうところのshopとgoodsのように、URL・機能的にはshopという大枠にまとまってはいるんだけど、その中に小機能がいっ…

クラスベースビューとデコレータとkwargs

クラスベースビューとデコレータを駆使するとDRYに書けていいですねーという話。 たとえば こんなURL設計のページを実装するとする。 /shop/<shop_id>/ /shop/<shop_id>/goodsA/<goodsA_id>/ /shop/<shop_id>/goodsA/ /shop/<shop_id>/goodsA/<goodsA_id>/buy /shop/<shop_id>/goodsA/<goodsA_id>/confirm /shop/<shop_id>/goodsA/<goodsA_id>/buy_finish /shop/<shop_id>/</shop_id></goodsa_id></shop_id></goodsa_id></shop_id></goodsa_id></shop_id></shop_id></goodsa_id></shop_id></shop_id>…

GenericForeignKey

関連 nullpobug勉強会03 "ContentTypesを使おう" - logiqboard 今回の主題 GFKきもいです GenericForeignKeyとは "一般化リレーション"を実現する、django.contrib.contenttypesの機能のひとつです。要はどんなモデルにでもリレーション張れるモデルが作れる…

Django1.1形式のadmin

Django1.1ではadminサイトのURLマッピングを urlpatterns = patterns('', (r'^admin/', include(admin.site.urls)), ... と書くのが推奨とされてるわけですが、旧来の形式が urlpatterns = patterns('', (r'^admin/(*)', admin.site.root), ... こんな形式な…

smtplibでSSL接続

Python2.5のsmtplibでSMTPサーバーにSSL接続しようとするとうまくいかない import smtplib srv = smtplib.SMTP("smtp.hoge.com", 465) #フリーズ ソースを見てみるとなるほど、connectメソッドでsocket.sslしていない。 つまりソケット接続はできてるけどSSL…

PythonからTokyoTyrantをつかう

TokyoTyrantなるものを使ってみました。 なんぞや TokyoTyrantはTokyoCabinetをネットワーク越しに使えるようにしたりmemcache互換プロトコルを喋れるようにしたりするラッパーです。 TokyoCabinetはシンプル高速なKey-Value形のデータベースで、mixiの中の…

Gmailから特定のラベルが付いてる未読メールの一覧を取ってきてTwitterのURLを抜き出してそいつをフォローするスクリプト

タイトルどおり。 follow通知にラベルをつけたはいいけどいちいちURLに飛んでフォローするのがめんどくさくて放置しちゃってる人は使ってみてください。http://bitbucket.org/feiz/kakisute/src/tip/follow_from_gmail.pyIMAP4_SSLのインスタンス生成時に固…

軽量フレームワークJunoを使ってみた

http://brianreily.com/project/juno/かるーく使ってみた。 駆け足でハローワールドまで紹介。 Junoをインストール easy_install juno jinja2入れてない人は別でインストールする必要があるかも 書く。 WSGIアプリケーションとして動かしてみる。 今回はjuno…

nullpobug勉強会04 "wsgiってなに"

またも間が空いてしまったnullpobug勉強会と、そのまとめ。 今回のテーマはwsgiについて。講師:id:nullpobug 生徒:id:feiz wsgiってなに web server gateway interfaceの略。 webサーバーとアプリケーション間の通信規約を定めたもの。 PEP-333に仕様が記…

nullpobug勉強会03 "ContentTypesを使おう"

>03 たぶん。去る土曜に開催されました月イチnullpobug勉強会。今回のテーマはContentTypes。 メンバー 講師:id:nullpobug 生徒:id:feiz ContentTypesってなんだ インスタンスとモデル名とを結びつける仕組み。とでも言えばいいんだろうか・・・ Djangoで…

壁紙検索などしてみた

最近モニタを24''WUXGAに変えました。 ちょーでかいです。とりあえず壁紙を変えようということでWUXGAの壁紙を我が10万オーバーの画像ファイル群から・・・ 探せるか! ということで、Pythonで書いてみました。 やりたいこと 特定のフォルダ以下に存在する画…