rietveld 読み

とりあえずだらだら読んでみます。Google App Engine のアカウントもあるので実働な試験もしてみるかも。
とりあえず django と言えば

  • views.py
  • urls.py
  • models.py

でしょ、と言いつつぼさっと眺める。

API

google.appengine.* からの import がある。これはとりあえずリファレンスのありかが分からんと微妙。リファレンスの入口は以下か。

あるいは備忘録まで UT 関連の文書が以下

どこから手を付ければ良いやら

とりあえず views.py を見てます。urls.py によれば

    (r'^$', 'index'),

がデフォなソレらしい。views.py の index メソドは以下なカンジ。

def index(request):
  """/ - Show a list of patches."""
  if request.user is None:
    return all(request)
  else:
    return mine(request)

request.user は django.contrib 以下のオブジェクトなのかどうなのか。とりあえず上記のコードからは None だったらログインされてない状態に見える。
あと面白げなのは mine というメソド。定義が以下

@login_required
def mine(request):
  """/mine - Show a list of issues created by the current user."""
  request.user_to_show = request.user
  return _show_user(request)

これは django マターな特別な書き方っぽい。ちなみに login_required というメソドも views.py で定義されてるみたい。

def login_required(func):
  """Decorator that redirects to the login page if you're not logged in."""
  def login_wrapper(request, *args, **kwds):
    if request.user is None:
      return HttpResponseRedirect(users.create_login_url(request.path))
    return func(request, *args, **kwds)
  return login_wrapper

@login_required はDjango でのユーザ認証という文書に解説がありますが、これはソレとは異なるように感じる。
と言いつつ google 先生にお伺いをタテてみたら

という文書に行き当る。これ、scheme 脳なら理解は楽勝。(を
でも手続きを定義しといて wrap したソレにカブせる事ができる、というのは強力。ってーかこーゆーナニが楽に理解できるのも scheme および SICP のお陰か。
# って理解が微妙かも、な可能性を完全に無視して書いてるな。