天蓬老师2017-04-17 16:50:32
tornado は、RequestHandler で prepare やfinish などのメソッドを提供します。 prepare は、フレームワークが get/post/... これらのメソッドを呼び出す前に呼び出されます。 finish は、応答が最終的に書き戻されるときにフレームワークによって呼び出されます。したがって、これを使用して、django のミドルウェアと同様の機能を実装できます。たとえば、ログインのチェック、権限の検証、応答の変更結果はすべてミドルウェアで完了できます。
リーリー伊谢尔伦2017-04-17 16:50:32
クラスの作成を制御するために使用されるメタクラスである必要があります。
ログイン後に get_user
がユーザー名を返すことができる、つまりクラス B
がログインしていないことを前提としたサンプル コード:
出力:
リーリーそして、このアイデアに従って、自分で変えてみましょう。
デコレータのバージョン:
リーリー出力:
リーリー