tornado: web.pyのその他

1366 ワード

最初に興味深いのはRedirectHandlerで、そのコードと構想はすべて比較的に面白くて、コードはとても短くて、直接見ます:
 
class RedirectHandler(RequestHandler):
    """Redirects the client to the given URL for all GET requests.

    You should provide the keyword argument "url" to the handler, e.g.::

        application = web.Application([
            (r"/oldpath", web.RedirectHandler, {"url": "/newpath"}),
        ])
    """
    def initialize(self, url, permanent=True):
        self._url = url
        self._permanent = permanent

    def get(self):
        self.redirect(self._url, permanent=self._permanent)

 
 
StaticFileHandler:
その中で最も重要なのはgetメソッドで、大まかな流れは以下の通りです.
  • 要求が正当であるかどうか(マッピング後のファイルアドレスが正しいかどうか)
  • をチェックする.
  • header:a.last-modifiedbを設定する.content-typec. Cache保存時間d.任意の追加ヘッダ(set_extra_headersメソッドを呼び出すことによって)e.requestヘッダの「If-MOdified-Since」に基づいて、ファイルの内容を返す必要があるか、または簡単に304 fを返す必要があるかを決定する.ファイルの内容を返す必要がある場合はetag
  • を計算して設定する.
  • bufferにデータを書き込み(writeメソッドを呼び出す)し、[Content-Longth]
  • を設定する
    それ以外にも、役に立つhelperメソッドmake_static_url、このメソッドを呼び出すと、バージョン情報(v=???)が返されます.のurl
     
    もともとwebにいました.pyの中にはいくつかの重要な類UImoduleとTemplateModuleがありますが、簡単に見ると乾いているのがほとんど分からないのでtemplateを見に行くことにしました.py、後で帰ってからこの2つの内容を補充します.