You are on page 1of 9

Web Applications Frameworks

in Python

By: Jacob Howard

What is a Web Application Framework?


A web application framework is designed to support the construction of internet
applications. This includes the development of dynamic websites, web applications,
and web services. It contains a collection of modules which help web developers
write these applications with ease. The framework aims to make common web
development tasks fast and easy
How is a Web Framework Going to Help You
Frameworks can help you by making your development process faster and more
efficient. It does this though allowing you to use the frameworks extensive libraries
and tools. It also tends to include substantial template libraries and code for you to
reuse.
List of Popular Frameworks in Python
Django
Web2py
Pylons
CubicWeb
Zope2
Cherrypy
Goal:
The goal of my report is to give you a strong list of options to explorer when
choosing a framework when working with Python. Each gives a detailed description
and includes the pros and cons of each given framework. I also provided a link of
where to download, read further on, and install each one. Finally, I gave what I felt
would be a good use for that particular framework.

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)

Download and Recommended Reading:


https://www.djangoproject.com/

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

You might also like