コード例 #1
0
ファイル: http_handler.py プロジェクト: azer/dasornis
class HttpHandler(BaseHandler):
  '''
  Main Http Handler Class which will be extended by request handlers.
  '''
  def __call__(self,request,*args,**kwargs):
    """
    Works when controller executes mapped subclass
    """
    #super(BaseHandler,self).__call__(request)
    self._template = None
    self.response = HttpResponse()
    self.request = request
    self.report = Report()
    self.cookies = CookieHandler(self)
    self.init(*args,**kwargs)
    """
    Subclasses will have get and post methods to handle requests.
    This method executes these methods by "method" attribute of request object.
    """
    getattr(self,'post' if self.request.method=='POST' else 'get')(*args,**kwargs)
    if self.template:
      self.response.write(self.template.render())
    return self.response

  def init(self,*args): pass
  def get(self,*args,**kwargs): pass
  def post(self,*args,**kwargs): 
    self.get(*args,**kwargs)

  def redirect(self,url):
    self.response.status = '307 Temporary Redirect'
    self.response.headers['Location'] = url

  @property
  def template(self):
    return self._template
    
  @template.setter
  def template(self,template):
    self._template = template