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 のお陰か。
# って理解が微妙かも、な可能性を完全に無視して書いてるな。