Engineer in Tokyo

Django

I was thinking about using Django for one of my projects on GAE because it seems like a popular project and somewhat easy to use, but I’m not quite understanding yet why it’s better to have helper functions rather than controller/handler classes like Pylons or GAE’s normal WSGI handling has. With handler classes my controller might look like:

from google.appengine.ext.webapp import RequestHandler

class MainHandler(webapp.RequestHandler):
  def get(self):
    # Read data from BigTable here
    self.response.out.write(outputhtml)

  def post(self):
    # Write data to BigTable here

    #redirect back to the url
    self.redirect(self.request.url)

Whereas the django helper function might look like:

from django.http import HttpResponse, HttpResponseRedirect

def mainview(request):
  if request.method == 'POST':
    # Write to BigTable Here
    return HttpResponse(outputhtml)
  elif request.method == 'GET':
    # Read from BigTable Here
    return HTTPResponseRedirect(request.url)

While the Django method might have the potential to have be a bit less verbose it feels like it would be harder to do things correctly, like factor code etc. I also don’t really like the conditional checks to see what kind of HTTP method was used. So either I would need to split GETs and POSTs to separate urls or just live with the conditional checks.

Personally I feel better with the Pylons-ish controller/handler approach. Anyone have an opinion?