Pylons Information
Pylons is a modern full-stack Python web development framework combining the very best from the worlds of Ruby, Python and Perl. Pylons helps you to build complex web applications quickly and easily. It is being developed by Ben Bangert and James Gardner with contributions, help and advice from Ian Bicking, Mike Bayer and many others.
Pylons is similar in many ways to Ruby on Rails since it uses similar methodologies and includes direct ports of useful Rails components such as Routes and AJAX Helpers. By combining ideas from Mason, TurboGears and various Python frameworks with a highly extensible API, Pylons provides a framework that is:
- Fast and Stable
Built on Mako, Routes and Paste, Pylons harnesses the full power of Mako for maximum performance. Although Pylons is still in development the core packages it uses are mature and Pylons is already being used in production systems.
- Easy to Use
Pylons implements the very best web development methodologies in straightforward pure-Python code. People new to Pylons are often surprised by how natural it is to use. If you already know Python you will feel right at home with Pylons, if not the Python Tutorial is an excellent starting point. Pylons plays nicely with other frameworks; you can even run TurboGears, Django and other WSGI applications from within a Pylons application making transition that bit easier. The web based interactive debugging makes even tough problems easy to resolve.
- Compatible
Pylons and its underlying components have been designed with great care to run on operating systems from Windows to MacOS to Linux on all types of computer from embedded devices to dedicated servers, in fact anywhere with a full Python 2.3 installation or above. Pylons can be deployed with its own server or integrated with other servers through WSGI/FastCGI/SCGI/CGI/mod_python and more. For example you can run Pylons applications on an Apache shared hosting account with ease.
- Component-Based
Most Pylons functionality is implemented through extension packages distributed as eggs rather than as part of Pylons Core. This enables you to only include functionality you need in your application and avoid slowdown caused by unnecessary code. Even the Pylons Core APIs have been designed so that they can be tweaked, customized, extended or replaced with the minimum of effort, often just by modifying files in your application's config directory.
- Extensible
If your application needs extra functionality you can install a Pylons Extension of your own. Pylons Extensions already exist to add Internationalization, Auth facilities and Rails helpers. You can easily write and distribute your own Pylons Extensions using the Extension API. Pylons Extensions are also designed to be integrated with other web frameworks and this integration is actively encouraged.
- Growing Rapidly
Pylons' ease of use and sophisticated features mean that it is rapidly gaining support. Its extensible architecture is enabling more people to write new packages to extend the core functionality and its careful and flexible design mean that Pylons can rapidly evolve and grow as new methodologies and ideas take root.
Knowing Python makes Pylons easy
Pylons makes it easy to expand on your knowledge of Python to master Pylons for web
development. Using a MVC style dispatch, Python knowledge is used at various levels:
- The Controller is just a basic Python class, called for each request. Customizing the
response is as easy as overriding __call__ to make your webapp work how you want.
- Mako templating compiles directly to Python byte-code for speed and utilizes Python
for template control rather than creating its own template syntax for "for, while, etc"