You are here: Home Blog Topics meetup

meetup

Apr 10, 2013

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.

 
 
Copyright © 2003-2017 Core Software Group | 303/809-1001 | Fort Collins, Colorado | All rights reserved.