Django のミドルウェアを自作する

この記事は、 もういくつ寝るとお正月カレンダー の2日目のものです。

@oidong1 さんが当初定員1人で ATND 立てていたことを良い事に、彼が私にやったように補欠登録してたら、いつの間にか定員が増やされて私まで書くはめになってしまいました。 それにしても、よしだアドベントカレンダーとは何だったのか。

それはさておき、私は Python のウェブアプリケーションフレームワークとして、今まで一貫して Flask を使ってきましたが、少し規模の大きい案件の開発以来、すっかり Django に染まってしまっています。

Django のドキュメントのミドルウェアの項によると、

ミドルウェア (Middleware) とは、 Django のリクエスト/レスポンス処理をフックするためのフレームワークです。 ミドルウェアは軽量かつ低水準な「プラグイン」システムで、 Django の入出力を操作します。

とあります。 つまり、そういうことです。

どうして私がこんな話をしているのかというと、今朝の5時頃に、 yosida95 / django-twitterapi / overview — Bitbucket を公開したからです。

request.twitter\_api で tweepy のインスタンスにアクセスするための Django ミドルウェアです。 このミドルウェアを介して Twitter で OAuth 認証してあると、 access token セット済みのインスタンスが入ります。

従って認証済みの状態で

def view(request):
    request.twitter_api.update_status(u'こんにちはこんにちは')

とかやると、認証済みのユーザーとしてつぶやくことができます。

徹夜の変なテンションと回らない頭を駆使してとっても適当に作ったので、まぁ生暖気目で見守って頂くか、使いやすく改良して pull request 投げてください。

以上です。 ちょうどいいタイミングでのカレンダー企画に乗じて宣伝をしておきました。

次のエントリは、先日プロ生勉強会でお会いしたイケメン中学生、 id:omegatakuma くんにお願いします><