2010-10-08

Google App Engineのwebappでステータス404を返す

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
python版のGoogle App Engineで提供されているフレームワークであるwebappでhttpのステータスコード404を返したいなぁと思って調べたら、
class AaaPage(webapp.RequestHandler):
  def get(self):
    self.error(404)
    return self.response.out.write('404 not found')
というパターンと
class AaaPage(webapp.RequestHandler):
  def get(self):
    self.response.set_status(404)
    return self.response.out.write('404 not found')
という二つのパターンが見つかります。

何が違うのかしらん?と思っていたらgoogleさんに普通に書いてありました。
http://code.google.com/intl/ja/appengine/docs/python/tools/webapp/requesthandlerclass.html#RequestHandler_error

self.error(code)

self.response.clear()

self.response.set_status(code)
を呼び出した場合と同じだそうです。

なので違いは、
self.response.clear()
を呼ぶか呼ばないかみたいです。
self.response.clear()
を呼ぶ場合と呼ばない場合でどんな違いがあるのかよくわからんので
とりあえず呼んでおくことにして
self.error(code)
を使うことにしてみました。
コメントを投稿