YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

Django Hackathon Disc.8 に参加してきた

感想

いままでPythonで遊んでて、知ってはいたけど使ってなかったDjangoを使い始めるよいきっかけとなりました。特にハンズオンではどの入門書でも触れるような箇所は余り触れずにむしろ入門書後に躓くような部分をわりと多く教えてもらったのでかなり有意義でした。次回以降、Python温泉とかにも参加したいですね。

Django Hands-on

基本的なところ
  • manage.pyを使うとき
$ python manage.py help  # 使い方
$ python manage.py syncdb  # DBとModelのsync
$ python manage.py shell  # シェルモード
$ python manage.py runserver  # テストサーバ起動
$ python manage.py sql  # 発行しているSQL確認
  • urls.pyで注意
    • 括弧を使うと関数への引数として渡してしまうよ
    • プロジェクトルートのurls.pyではadmin.autodiscover()で各アプリのadmin.pyを読み込んでくれます
admin.py

各アプリのadmin.pyでadmin.site.register()で登録された場合のみ上記のadmin.autodiscover()で認識されます

views.py

Djangoで言うところのviewは一般的なMVCパターンでのControllerに対応します。Modelはmodel, Viewはテンプレートに対応します。(MVTパターンと呼んでいるらしい)

forms.py

form.ModelFormを利用することでModelからフォームを自動生成できます。

Middleware

リクエストからView、Viewからリプライまでの間で何らかの処理をしたいときに実装する。(IPアドレスではじいたりとか)慣習的にはアプリの下に作る場合はmiddleware.pyというファイルを作ってやって、その中にクラスを実装してやれば良いです。

Djangoの便利サイト

pdb(デバッガ)

これで幸せになれる。

import pdb
pdb.set_trace()

Lightning Session

途中ハンズオンの課題やっててあんまメモとれなかったです(発表者の方々すみません!)

JQuery & JQuery UI(文殊堂さん)

JQuery APIライブラリがあると幸せになります。

またこれにはAIR版があるのでさらに便利。

必要なUIのコードだけまとめて1つのJSにしてくれる。

テーマをGUIで設定して落とせる。

時刻入力用のGUI

Django & Flash(大塚さん)
Django+GTD+(渋川さん)
西尾泰和さん
  • 最中限
    • RDBの考えでGAE内の分散DBにデータを取りに行くと落とし穴がある。(countが高コストの処理になったり)
  • イクノザマ
  • app-engine-patchを使うと便利
  • スパゲティーモンスター
酒徳さん
  • OpenSocialの時代がやってきた
  • Facebookではすでに戦争が起きている
  • 一発あてて金儲けしようぜ

追記

LTのところで酒徳さんの名前間違えてました >< すみません! 常山さんありがとうございました。