Mon, 26 May 2008

Python - Web application frameworks

The PythonInfo Wiki defines a a web framework as,

a collection of packages or modules which allow developers to write Web applications or services without having to handle such low-level details as protocols, sockets or process/thread management.

As a testiment to Python's power and simplicity it would seem that many developers have created their own frameworks rather than use a solution already in existence. As a result one will find solutions in various stages of development and feature implementation.

I have always tried to subscribe to the basic principle of using the right tool for the job. With that in mind I have embarked on an exploratory journey to investigate some of Python's existing Web frameworks with hopes of finding one that will work for a couple of big projects I have in the works. My requirements are fairly simple; I do not want to learn a behemoth of an API that will take months to figure out, yet I do not want something so simplistic that it will expect me to handle to many low-level details. Finally, until I can bring my own server back online, the chosen framework needs to work with my current hosting provider, DreamHost.

The five high-level frameworks I am looking at include:

  • Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Because Django was developed in a fast-paced newsroom environment, it was designed to make common Web-development tasks fast and easy.
  • TurboGears builds on other open source projects. In TurboGears, CherryPy controllers sit at the hub of your project. This is the biggest area for integration. Providing tools that allow the controllers to more easily work with SQLObject databases, answer asynchronous calls from MochiKit and render out completed Kid templates is where the big win will come.
  • Pylons combines the very best ideas from the worlds of Ruby, Python and Perl, providing a structured but extremely flexible Python web framework. It's also one of the first projects to leverage the emerging WSGI standard, which allows extensive re-use and flexibility - but only if you need it. Out of the box, Pylons aims to make web development fast, flexible and easy.
  • Webware is a suite of Python packages and tools for developing object-oriented, web-based applications. The suite uses well known design patterns and includes a fast Application Server, Servlets, Python Server Pages (PSP), Object-Relational Mapping, Task Scheduling, Session Management, and many other features. Webware is very modular and easily extended.
  • Zope is an open source application server for building content management systems, intranets, portals, and custom applications. The Zope community consists of hundreds of companies and thousands of developers all over the world, working on building the platform and Zope applications. Zope is written in Python.



posted: 13:48 | 0 comments | tags: , ,


© 2008 PlatosCave.net