Survey of Python-Based Web Application Frameworks - Jake Howard
Survey of Python-Based Web Application Frameworks - Jake Howard
in Python
Django
Django was designed for a fast paced newsroom environment. Meaning, it was
created so elegant and high-level web applications could be made rapidly to meet
deadlines. It is one of the most popular Python Frameworks and contains excellent
documentation. With its admin service it makes it real easy for computer illiterate
people to be able to go in and change information without actually touching the
code itself. It supports Ajax and is considered a full-stack framework. Finally, it
contains both testing and form validation frameworks.
Pros:
1. Documentation all in one place
2. Includes all the basics and can also support 3rd party modules if needed
3. Contains a user-friendly admin service that allows easy access to the sites backend data
4. Compatible with Python 3.x
Cons:
1. It is limited to just Djangos object relational mapping and templating systems.
Use:
Rapid web development of web applications (builds quick web apps)
Web2py
Web2py is a free open source full-stack framework. It was designed to be easy to
setup, learn, and use. It does not require installation or configuration. Web2py is
actually so portable that it can be ran off a USB! It has everything you need right
from the start. This includes a web server, SQL database, and a web-based
interface. Through this provided web interface, maintenance and database
administration can be done quite simply. It is not reliant on 3rd party applications
but is capable of using them.
Pros:
1. Backwards compatible
2. Scalable
3. Contains a database abstraction layer that provides internal defense against
SQL injections
4. Requires no installation or configuration
5. You can create, modify, deploy, and manage applications from anywhere using
your browser
Cons:
1. No support for unit testing or Python 3.x
2. Poor at error testing (not accurate at telling you what line the error is on)
Use:
Very good framework for small web applications
Download and Recommended Reading:
http://www.web2py.com/
Pylons
Pylons is a web framework that is heavily concentrated on flexibility and swift web
development. Pylons were one of the first to utilize the advantage of the Web Server
Gateway Interface. It is said that it combines the better elements of Ruby, Python,
and Pearl all in one. Provides a foundation for Ajax support. Pylons also contain an
amazing debugger and allows for smooth upgrades to be made to your project.
Pros:
1. Emphasis on flexibility
2. 3rd party modules for templating, database interaction, routing, and etc.
3. Ease of customization
4. Separated models, views, and controllers
Cons:
1. No support for unit testing or Python 3.x
2. No built in security frameworks
3. Since it is a collection of 3rd party modules the documentation for the
customization is scattered throughout the internet and can be hard to find
Use:
For projects that need to be extremely flexible in their design
Download and Recommended Reading:
http://www.pylonsproject.org/projects/pylons-framework/about
CubicWeb
CubicWeb is a semantic web application framework that uses the real query
language and is considered to be heavy data driven. A semantic framework allows
for data to be shared and reused across applications and community boundaries. It
builds web applications by reusing components called cubes. Cubes are bare
minimal web applications that can be reused and connected to other cubes to form
larger and more complicated applications. The application construction is data
driven and relies heavily on interacting with databases.
Pros:
1. Great for data driven websites
2. Library of reusable components
3. Engine driven by the specific data model of the application
Cons:
1. No support for unit testing or Python 3.x
2. Not very easy to learn and comes with a learning curve
3. Since it is data driven it is not very practical to use this framework on sites or
applications that are not data driven themselves
Use:
For projects that are heavily data driven
Download and Recommended Reading:
http://www.cubicweb.org/
Zope2
Zope2 is an open-source web application server. It was designed to be used as a
web server, where you could make dynamic websites and manage them on the
web. It is also the successor of Zope, which dates back about 15 years ago. Since
it is the successor of Zope, Zope2 is able to draw upon the years of templates and
documentation that have been previously recorded. Finally, it contains a built in
security system, within its framework, that has years of great protection underneath
its belt.
Pros:
1. 15 years of code development and documentation
2. Great security system and includes its own database
3. Has many framework templates to chose from
4. Considered to be extremely scalable (you do not have to change the
applications code itself to scale it)
Cons:
1. No support for Python 3.x and comes with a high learning curve
2. Wasnt created specifically to create web applications (better for websites)
Use:
For projects that need to be scalable. Good for creating websites.
Download and Recommended Reading:
http://zope2.zope.org/releases
Cherrypy
Cherrypy is a pythonic object oriented http framework. Builds web applications like
you would build any object oriented program in Python. You write Cherrypy
applications the same way you would a Python application, thus, making it very
easy to learn if you were already very familiar with how to use Python. It provides
the tools you need to deal with common HTTP requests and responses.
Pros:
1. Less code in less time
2. Fast and Stable
3. Makes use of web applications anywhere Python is installed and contains an
embedded web server
4. Compatible with Python 3.x
5. Makes prototyping very easy
Cons:
1. Doesnt provide you with libraries or templates to use
2. Doesnt have its own database system or an object relational mapper
Use:
For people who really enjoy the python language and are working on a simple
project
Download and Recommended Reading:
http://www.cherrypy.org/
Resources
Includes all the above recommended readings
https://wiki.python.org/moin/WebFrameworks
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Python