Web programmers have used the Common Gateway Interface (CGI) to connect
applications to Web servers and Web browsers.
The CherryPy application framework for Python makes Web applications easier
to write than CGI.
CGI can be used with any programming language and it supports almost all Web servers and hosting services.But CGI has serious drawbacks. The interface between the Web server and a CGI script is somewhat twisted. In addition, Web servers spawn a separate process for every CGI request, which means poor performance and no persistence across requests.
These bridges are so numerous that picking one can be difficult. Some of the server application bridges are full-fledged application frameworks, with their own templating systems, authentication services, object-relational mappers.
There are some alternate ways to bridge this gap between Web servers and application code. some popular ways of doing this have included Java servlets, the Ruby on Rails framework, and the Apache modules mod_perl and mod_python.
CherryPy is a pythonic, object-oriented web development framework. It allows developers to build web applications in the same way they would build any other object-oriented Python program. It connects the Web server to your Python code with as little fuss as possible. It doesn’t make decisions about what other tools to use, so you’re free to pick a templating system, database mapper, or other tool on its own terms.
The most important feature of it is, instead of relying on Apache or another Web server, CherryPy runs its own small Python-based Web server. A traditional Web server creates a Web space out of a tree of directories disk, but the CherryPy server creates its Web space out of a tree of Python objects.
CherryPy is now more than three years old and it is has proven very fast and stable. It is being used in production by many sites, from the simplest ones to the most demanding ones.
>> CherryPy Home Page
>> CherryPy for CGI programmers