Pylons Web Framework
Background
The Pylons project was started in October 2005 by Ben Bangert (now at O'Reilly) and James Gardner (now at 3aims Ltd) who joined forces with the aim of creating a new kind of web framework based upon modularity, flexibility and scalability as well as rapid development.
Pylons is now considered one of the major Python frameworks and is used all over the world by large community of developers. There are currently over 700 people using Pylons subscribed to the mailing list and this number is doubling roughly every 6 months. Pylons has been used successfully in projects for Universities, industry, start-ups and businesses.
Rapid Development
Principle 1: Most websites have a large number of requirements in common
This means that it is sensible for a framework to provide all the tools you are likely to need in your project and to ensure they work well together. Pylons provides just such high-level tools and components so that you can get started quickly to create powerful applications. In this respect Pylons shares much in common with other well known frameworks such as Ruby on Rails and Django where emphasis is placed on all of the following:
- The use of a high-level language to speed development
- A Model View Controller architecture
- Elegant and flexible URL design
- Powerful templating features to separate presentation from content
- Outstanding relational database support and the ability to use object databases
- Unicode and internationalisation facilities out of the box
- Reduced duplication of effort by favouring well understood conventions over configuration
One of the key obstacles to rapid development is the speed with which developers can track down and fix problems in their code. Pylons comes with one of the open source world's most powerful interactive debuggers which displays a full stack trace, variables list, environment information and even allows you to interactively debug your application with a full executable prompt making debugging extremely fast.
These high-level features and well-known design patterns mean that creating pragmatic yet elegant web applications with Pylons is both quick and easy, even for small teams of developers.
Choice as Standard
Principle 2: What is best for your project isn't necessarily best for mine
Pylons recognises that not every project has the same goals and requirements and that not every team has the same preferences. All the core components of Pylons work together through carefully designed APIs so that if your exact requirements are not met out of the box you can use the existing APIs to customise the way Pylons works to more fully meet your needs.
As an example if this many Pylons users prefer XML-based templates over Pylons' default template language. Because the Pylons team have worked with other project teams to improve compatibility, changing templating tools is as simple as changing one line of code in a configuration file.
Low-level Modularity for Maintainability
Principle 3: What is best for my project now isn't necessarily going to be best for it in the future
Beneath Pylons' high-level components lie a powerful Web Server Gateway Interface middleware stack which gives the developer direct access to change or extend how the core parts of the framework operate. Each part of the framework such as the error documents support, registry or debugging code is directly exposed as a middleware component. This modularity gives Pylons enormous flexibility - if a certain part of Pylons doesn't meet your requirements it is a simple matter of changing a few lines of code to replace it.
Pylons' middleware stack also gives it enormous potential to be extended. As an example adding authentication facilities is as simple as adding authentication middleware to the stack. There is already a large community of developers producing reusable middleware components and these can be used directly in Pylons without modification.
In addition to the added flexibility there is another benefit to Pylons' extensive Web Server Gateway Interface support - server compatibility. Pylons already supports most of the popular web servers including Apache, FastCGI, CGI, Microsoft IIS, Nginx, LightHTTPd and more. It is also possible to add support for other servers.
This modularity puts the developer back in control and helps to keep code as maintainable as possible.
If you are interested in finding out more about Pylons visit the Pylons website or contact us. To start contributing documentation visit the recently launched Python Documentation Project site.
Note: We are available to discuss new work to start in June 2007. Please contact us.
Join Our Newsletter
Subscribe to our free newsletter
for articles, advice and news of our progress. We'll never sell, disclose, or trade your
email address and naturally you can unsubscribe at any time.
We promise not to contact you too regularly.
