Alternatives to Django for Python based Web Development?


I am about to start a new personal web / iphone app project which requries the following:

  • Storing data on the backend
  • authenticating the user via openid
  • Generate JSON based APIs for reading and writing data

I normally use Django for all of my projects but thought I would take this opportunity to learn something new. So, are their any Python based web development frameworks that are good alternatives to Django? Ideally ones that are strong on the points listed above?

Bonus points if the framework is:

  • lightweight
  • easy to install, deploy and developwith

Any recommendations?

7/12/2012 4:19:37 PM

Accepted Answer

I've only ever used Django and I love it, but here's a couple others (I think Flask is your best bet for a very small and very lightweight web app)


"Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions." -


"Rather than focusing on a single web framework, the Pylons Project will develop a collection of related technologies. The first package from the Pylons Project was the Pyramid web framework. Other packages have been added to the collection over time, including higher-level components and applications. We hope to evolve the project into an ecosystem of well-tested, well-documented components which interoperate easily." -


"Grok is a web application framework for Python developers. It is aimed at both beginners and very experienced web developers. Grok has an emphasis on agile development. Grok is easy and powerful." -


"TurboGears will help you to create a database-driven, ready-to-extend application in minutes. All with code that is as natural as writing a function, designer friendly templates, easy AJAX on the browser side and on the server side and with an incredibly powerful and flexible Object Relational Mapper (ORM)." -

More Python Framework Resources

After a little more digging I found this resource:

11/3/2012 8:51:59 PM

I've used web2py for a couple small projects and really liked it.

It is pretty lightweight, has great documentation, and in my experience very simple to deploy. I've never used Django, so I'm not sure how it compares.

A few hello worlds:

def hello1():
    return "Hello World"

def hello5():
    return HTML(BODY(H1(T('Hello World'),_style="color: red;"))).xml() # .xml to serialize

def hello3():
    return dict(message=T("Hello World"))

The corresponding view for hello3:

{{extend 'layout.html'}}

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow