You are here: Home Blog A Landscape of Python Web Development

A Landscape of Python Web Development

by Chris Crownhart — last modified Apr 10, 2013 10:55 PM

Last week we had our kickoff meeting of the new Python Web Development meetup in Fort Collins, Colorado. We had 8 folks at the meeting and had great discussions about a variety of Python products and ideas for future meetings.

In preparation for our kickoff meeting of the new Python Web Development meetup, I started putting together what I called "A Landscape of Python Web Development".  It started with a few of the obvious tools and products that we use at Core Software Group, like Zope/Plone, Django, and boto and suds.

From there, it started becoming obvious that I needed to break down the ever-growing list into mutliple categories.

My list of products played out like this:

The Categories

  • Frameworks
  • CMS
  • Deployment/Hosting
  • Page Templates/Forms
  • Databases
  • Testing
  • Tools/Other
  • Static Site Generators

Frameworks

This list of frameworks includes some old timers, and some newer, 'lightweight' frameworks.  The last one listed, itty, was mentioned in one of Raymond Hettinger's pycon videos, and seemed an interesting, super small framework to check out.

  • Zope
  • Pyramid
  • Django
  • Flask
  • Bottle
  • CherryPy
  • web2py
  • itty

CMS

I'm sure I missed some, but these seemed to be the key players that we have come across, and the interwebs seemed to point to.

  • Plone
  • Kotti
  • Django CMS
  • Mezzanine

Deployment/Hosting

The first three are cloud platforms, and the last three are samples of python tools related to deployment.

  • Heroku
  • Google App Engine
  • Elastic Beanstalk
  • boto for EC2
  • fabric
  • buildout

Page Templates/Forms

This list was a late addition, but is now pretty obvious.  You can't do web development without page templates and forms.

  • Zope Page Templates (ZPT)
  • Django Templates
  • jinja2
  • chameleon
  • deform
  • z3c.form
  • WTForms

Databases

While the following are not directly related to web development, they certainly come into play when building applications that require a backend database.

  • sqlalchemy
  • psycopg2
  • pymongo
  • MySQL-python

Testing

Ok, I have to admit that I'm incredibly weak when it comes to writing tests.  But I needed a list of some of the tools out there.

  • unittest
  • doctest
  • coverage
  • selenium
  • funkload

Tools/Other

Wow. This list could go on and on and on.  I grabbed a few tools that we use, plus a few others I came across over the last month.  Hopefully, we can provide some presentations about some of these in future meetups.

  • suds
  • requests
  • twisted
  • mincss
  • xml.dom, lxml, etree
  • virtualenv
  • simplejson
  • PIL/Pillow

Static Site Generators

This list of static site generators almost has nothing to do with the above items, but I couldn't resist putting the list together.  I'm fascinated by the concept of someone willing to write blog entries as text files, which in turn get deployed as static HTML to some server on the web.  What I really want to know is: "How many folks are actually using these kind of tools for production sites?"

Hovercraft/impress.js

Finally, while building my presentation, I came across a Python package called Hovercraft!, written by Lennart Regebro, for generating impress.js presentations from a reStructuredText file.  Awesome.  And so easy to use.  You can download my kickoff.rst file and the generated output for my presentation.

Our discussion at the Python Web Development meetup was interesting, and it turns out that most of categories really start to look like the definition of a "development stack" which I suppose could be used to define a set of tools that someone might use to get started doing Python based web development.

I hope you find some value in this list.  If I missed some completely obvious products, please add a comment and let me know.

Document Actions

missing yafowil

Avatar Posted by johannes raggam at Apr 15, 2013 11:35 AM
nice landscape!

regarding forms frameworks, this one is definetly missing: http://docs.yafowil.info/
demo: http://demo.yafowil.info/

it's "yet another form widget library", by BlueDynamics and it's worth to know. it doesn't generate forms out of schema definitions by design altough you could. it is not bound to any framework or storage layer. it's not class based by design. it's easy to extend and very flexible. and YAFOWIL is used in production and constantly getting better.

Web Development Services

Avatar Posted by Slade Brown at Apr 29, 2013 11:42 AM
It has always been possible to use Python for creating web sites as Python is easy to learn and fun, so programs written in Python take up far less code than other languages. There are quite a few Python web frameworks that provide better features.

Acrylamid

Avatar Posted by Mark van Lent at Apr 29, 2013 11:42 AM
Here's another static site generator you could add to our list: Acrylamid, see http://posativ.org/acrylamid/. It is a mixture of nanoc, Pyblosxom and Pelican, at least according to the documentation. (I have too little experience with the others to validate the claim.) As with many static site generators you can write your pages in Markdown or reStructuredText and the HTML is generated based on templates you can author in Jinja2 or Mako.

As for actual production use of static site generators: My blog (http://www.vlent.nl) is built using Acrylamid. And I know that e.g. Tarek Ziadé and Daniel Greenfeld use Pelican for their blogs. Wichert Akkerman is using StrangeCase (https://github.com/colinta/StrangeCase).

More static blogs

Avatar Posted by Chris Crownhart at Apr 29, 2013 11:45 AM
Mark, thanks for the extra information and links to these additional tools and sites.

Add comment

You can add a comment by filling out the form below. Plain text formatting.

Info
You are not logged in. You may optionally enter your username and password below. If you don't enter anything, this comment will be posted as 'Anonymous User'.
(Required)
(Required)
(Required)
Enter the word
 
 
Copyright © 2003-2017 Core Software Group | 303/809-1001 | Fort Collins, Colorado | All rights reserved.