mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-20 10:34:30 +00:00
103 lines
4.3 KiB
ReStructuredText
103 lines
4.3 KiB
ReStructuredText
********************
|
|
Why choose CherryPy?
|
|
********************
|
|
|
|
Let's face it: there are **dozens** of different Python web frameworks. Why would
|
|
you want to choose CherryPy for your next dynamic Web project?
|
|
|
|
1. Simplicity
|
|
-------------
|
|
|
|
Developing with CherryPy is a simple task. "Hello, world" is only a few lines
|
|
long, and does not require the developer to learn the entire (albeit very
|
|
manageable) framework all at once. The framework is very pythonic; that is,
|
|
it follows Python's conventions very nicely (code is sparse and clean).
|
|
|
|
Contrast this with J2EE and Python's most popular and visible web frameworks:
|
|
Django, Zope, Pylons, and Turbogears. In all of them, the learning curve is
|
|
massive. In these frameworks, "Hello, world" requires the programmer to set
|
|
up a large scaffold which spans multiple files and to type a lot of boilerplate
|
|
code. CherryPy succeeds because it does not include the bloat of other
|
|
frameworks, allowing the programmer to write their web application quickly
|
|
while still maintaining a high level of organization and scalability.
|
|
|
|
CherryPy is also very modular. The core is fast and clean, and extension
|
|
features are easy to write and plug in using code or the elegant config
|
|
system. The primary components (server, engine, request, response, etc.)
|
|
are all extendable (even replaceable) and well-managed.
|
|
|
|
In short, CherryPy empowers the developer to work with the framework,
|
|
not against or around it.
|
|
|
|
2. Power
|
|
--------
|
|
|
|
CherryPy leverages all of the power of Python. Python is a dynamic language
|
|
which allows for rapid development of applications. Python also has an
|
|
extensive built-in API which simplifies web app development. Even more
|
|
extensive, however, are the third-party libraries available for Python. These
|
|
range from object-relational mappers to form libraries, to an automatic Python
|
|
optimizer, a Windows exe generator, imaging libraries, email support, HTML
|
|
templating engines, etc. CherryPy applications are just like regular Python
|
|
applications. CherryPy does not stand in your way if you want to use these
|
|
brilliant tools.
|
|
|
|
CherryPy also provides Tools and Plugins, which are powerful extension points
|
|
needed to develop world-class web applications.
|
|
|
|
3. Maturity
|
|
-----------
|
|
|
|
Maturity is extremely important when developing a real-world application.
|
|
Unlike many other web frameworks, CherryPy has had many final, stable releases.
|
|
It is fully bugtested, optimized, and proven reliable for real-world use.
|
|
The API will not suddenly change and break backwards compatibility, so your
|
|
applications are assured to continue working even through subsequent updates
|
|
in the current version series.
|
|
|
|
CherryPy is also a "3.0" project: the first edition of CherryPy set the tone,
|
|
the second edition made it work, and the third edition makes it beautiful.
|
|
Each version built on lessons learned from the previous, bringing the developer
|
|
a superior tool for the job.
|
|
|
|
4. Community
|
|
------------
|
|
|
|
CherryPy has an active community that develops deployed CherryPy applications
|
|
and are willing and ready to assist you on the CherryPy mailing list or IRC.
|
|
The developers also frequent the list and often answer questions and implement
|
|
features requested by the end-users.
|
|
|
|
5. Deployability
|
|
----------------
|
|
|
|
Unlike many other Python web frameworks, there are cost-effective ways to
|
|
deploy your CherryPy application.
|
|
|
|
Out of the box, CherryPy includes its own production-ready HTTP server
|
|
to host your application. If the application needs to be deployed on Apache,
|
|
there is copious documentation discussing how to connect the two. CherryPy can
|
|
also be deployed on any WSGI-compliant gateway (a technology for interfacing
|
|
numerous types of web servers): mod_wsgi, FastCGI, SCGI, IIS, etc.
|
|
|
|
In addition, CherryPy is pure-python and is compatible with Python 2.3. This
|
|
means that CherryPy will run on all major platforms that Python will run on
|
|
(Windows, MacOSX, Linux, BSD, etc).
|
|
|
|
`Webfaction.com <http://www.webfaction.com>`_, run by the inventor of CherryPy,
|
|
is a commercial web host that offers CherryPy hosting packages (in addition to
|
|
several others).
|
|
|
|
6. It's free!
|
|
-------------
|
|
|
|
All of CherryPy is licensed under the open-source BSD license, which means
|
|
**CherryPy can be used commercially for ZERO cost**.
|
|
|
|
7. Where to go from here?
|
|
-------------------------
|
|
|
|
Check out the :doc:`/concepts/index` and :doc:`/progguide/index` for
|
|
more complete documentation.
|
|
|