Django勉強会 Disc 2 受付終了

受付開始から11時間で定員に達したそうです。

今回は、ウノウのオフィスが会場なのですが、やっぱりもっと広い場所が必要ですね。

Django勉強会 Disc 2

DjangoのCSRF対策は1行追加するだけみたい

DjangoのCSRF対策について調べてみました。

なんと設定ファイルのMIDDLEWARE_CLASSESにこれを1行追加するだけでした。

'django.contrib.csrf.middleware.CsrfMiddleware'

これだけで、フォームに隠しフィールドを追加して、正しいフォームからPOSTされた値かどうかを自動的にチェックしてくれます。

Django勉強会 Disc1

残念ながら諸事情により参加できませんでしたが、今回も濃い人達が集まったようです。 everesさんの言葉 を借りるとこんな感じ。

実はDjango勉強会の参加者は、DjangoにプロポーザルやパッチをコントリビュートしているようなDjango人からphpを作っていた人、 phpのフレームワークのコミッタ、Rails使いの人、ワンライナーの人等かなり濃い人が集ってきていて面白い場になっています(Seasaa関連のコミッタも参加予定だったし)。

いつもブログを読ませてもらってる perezvonさん増田さん に僕も会いたかったです。それはそれは楽しい話が聞けたに違いない… 次回は1月に開催予定ですので、興味のある方はぜひ django-jaメーリングリスト に入ってみてください。まだまだ僕のような初心者もいますので、これから始めようという方大歓迎です。

cron jobからDjangoフレームワークを利用する

Webシステムを作っていると、ブラウザからのアクセスとは別に非同期で処理を実行したい場面って結構あります。例えば、cronにジョブを設定して定期的に行う処理などです。

データベースに直接アクセスするなら何も考えなくてもできます。でも、せっかくだからDjangoのモデルを利用して楽をしたいですよね? 試しにmodelをimportしてみたけど、それだけではうまくいかない。で、どうやるのかなぁと調べてたら、下記のサイトに情報がありました。環境変数'DJANGO_SETTING_MODULE'を設定してあげれば良いらしいです。

Slowchop Studios » Blog Archive » Creating a Django cron job

こういうview.pyがあって、このdaily_job()をcronから呼び出したいとき。

import urllib2
from models import WebSite
def daily_job():
    for site in WebSite.objects.all():
        page_html = urllib2.urlopen(site.url).read()
        do_something_with_page_html(page_html)

こんな感じでプロジェクトのトップにスクリプトを置いてあげると、cronからDjangoフレームワークを呼び出して使うことができます。

#!/usr/bin/env python
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from mytestapp.views import daily_job
daily_job()

♪コントラスト − クラムボン

Django 勉強会 Disc 0

半蔵門のお洒落なオフィスで開催された「Django 勉強会 Disc 0」に参加してきました。

主催の露木さんも人が集まるか心配していたようですが、蓋を開けてみると参加者は20人、しかもDjangoに目をつけるだけあって、皆さんかなりの腕前。初回なので、皆さんのレベルを推し量るという意味でチュートリアルを2,3人ずつのチームに別れて行うという内容でしたが、これは次回からかなり期待できそうです。

勉強会のトピックス

  • admin画面の自動生成ドキュメントがすごい
  • ブラウザのAccept-Languageによって言語切り替えをするには、MIDDLEWARE_CLASSESのsessionの後に'django.middleware.locale.LocaleMiddleware'を1行追加するだけ
  • モデル定義がPython的、メタクラス定義
  • Mac率高い、60%くらい

懇親会のトピックス

  • Weboo meets Twisted Mind . ついに会えた、握手した、かなり熱い人だった。
  • 『みんなのPython』 増刷が決定
  • 外人がYellow Submarineを熱唱してた
  • 壁と脱力系

これからDjangoを始める人のためのリンク集

何だか最近、Djangoが各所で注目されているようなので、自分も手を出してみることにする。

まず、 「Framework Performance in Ruby on Rails」 を読む。Symfony(PHP)とRails(Ruby)、そしてDjango(Python)のパフォーマンス測定の結果が出ているんだけど、Djangoが最速らしい。おぉー!


次にDjangoに関して精力的に活動している露木さんのブログエントリ 「あなたがDjangoを利用すべき10の理由」 を読む。一日1500万ヒット以上をシングルDjangoインスタンスで捌いているとのこと。おぉー!確か新聞社のサイトで使われているんでしたよね。


と、モチベーションが高まってきたところで次に進みます。とりあえず、この辺りから読んでいけばいいのかな。


【2006.8.16追記】