250 350 5105283 actual allegra amk apr attribute bayesian cellpadding community comparing connections deliverance difficulties experimental filling guido homepage imdb instant introduces linkchecker mail muscle n notification nz openstreetmap packets plog podcast poster promising publications received rule scale scheme sdk showmedo somewhere st straight strategy tcp template templates tornado udp updates videos webframeworks weblogs wrappers zzzeek
A large number of web frameworks exist for writing web-based services in Python. Development of simple web servers in Python to address particular needs is quite straight forward.
- 2010-Jul-26: Hookbox is a websocket / webpush server. 
- 2010-Apr-30: Parlatorio is a simple web comment system that uses OpenID, in this blog note there is a discussion of why
the author chose certain third party packages. Another note on using OpenID through the python-openid module. 
- 2010-Apr-06: Tornado (project home page) is another web framework for Python. This one originated with FriendFeed. Mentioned here and discussed here on Slashdot. Praise for Tornado can be found here. 
- 2009-Nov-05: execnet.py,
a library for remote execution of Python code fragments. Here on pypi. This can be used to work with .NET code remotely.
- 2009-Oct-23: web.py, a simple web framework
for coding sites in Python. Using web.py to implement a RESTful API.
- 2009-Oct-23: The diesel server is a new asynchronous web server engine for Python. Beautiful coroutines, cooperative concurrency in Python using Diesel. 
- 2009-Sep-23: The Twisted networking
framework, has a book: Twisted:
Network Programming Essentials, available in Oct'05.
There are a number of projects
implemented with Twisted, these include Twisted Web (an HTTP
server), Twisted Mail (SMTP, POP and IMAP clients and servers),
Twisted News (an NNTP client/server), Twisted Lore (a documentation
generator with HTML and LaTeX support), Twisted Runner
(for process management and inetd replacement). Allegra is an
alternative to Twisted, here are some comments on Twisted vs.
Allegra. An article
that introduces some client-side programming using Twisted. Another comparison
of Allegra and Twisted. Another mail server based on Twisted. A series of articles on using the Twisted Web in 60 seconds.
- 2009-Sep-04: Amplitude is a fast, light, web-development framework. 
- 2009-Aug-26: fapws is a fast asynchronous python web server. This got renamed to nfapws. 
- 2009-Aug-06: Some thoughts on the pros and cons of Werkzeug, WebOb and Django. 
- 2009-Jul-30: A lament about the state of WSGI frameworks. 
- 2009-Jul-20: paramiko, a Python
module for SSH2 connections, also here on PyPI.
- 2009-Jul-17: berry is a minimal web framework written in Python. 
- 2009-Jul-16: authorize is a Python client library to connect to the authorize.net payment processing service. 
- 2009-Jul-13: bottle is another WSGI-framework for small web-applications. 
- 2009-Jun-05: pyRails a project to make a rails environment for Python. 
- 2009-Jun-04: lamson is a mail server built in Python. 
- 2009-Jun-04: Hydra is a multi-threaded web server for Python. 
- 2009-May-26: bobo is a light-weight framework for creating WSGI web applications. 
- 2009-May-04: TileLite (here on PyPI) is a light weight WSGI tile-server, written in python, using Mapnik rendering and designed to serve OSM (OpenStreetMap) tiles. I guess this allows one to implement a Google Maps like server. 
- 2009-Apr-14: pesto is a WSGI application library. 
- 2009-Apr-14: wsgid is a WSGI server with support for SSL and code reloading. 
- 2009-Apr-08: poster is a module for streaming HTTP uploads and multipart/form data encoding. 
- 2009-Apr-03: Flojax might be a better way of creating AJAX applications.  
- 2009-Mar-20: A positive vote for Django. 
- 2009-Mar-09: Fabric a remote deployment tool designed to upload files to and run shell commands on a number of servers in parallel. Some notes on using this. 
- 2009-Mar-06: Pimdox is a personal information manager and documentation system that will build a static website from text files. 
- 2009-Mar-03: Python HTTP Pipelining is an implementation of HTTP Pipelining for Python, this allows an HTTPConnection to send the next request(s) ahead of time (i.e. before the response to the previous request has been received). Now if only an HTTP server could send responses back to the client before the client makes the requests...  
- 2009-Mar-03: Blogofile is a blog engine and compiler. 
- 2009-Jan-21: Restish and Formish a lightweight WSGI web framework and a form library to go with it. They are on PyPi; restish and formish. 
- 2008-Dec-25: Mako is a templating language for Python. 
- 2008-Dec-17: rocket is a simplified framework for writing web applications to run on the Google App Engine. 
- 2008-Dec-11: spats is a simple page template server. 
- 2008-Nov-29: The reverend module
(from Divmod) provides a
bayesian filter. The reverend module gets used to automatically classify blog pages with some promising results.
- 2008-Nov-13: Some people really like plone. 
- 2008-Nov-03: An unusual approach to log file parsing talks about formatting log file messages as actual commands that can be executed. The result of this is that a log file might even be a full Python script that you run to analyze. 
- 2008-Nov-03: IMDbPY,
a Python package (home page: imdbpy.sourceforge.net)
useful to retrieve and
manage the data of the IMDb
movie database about both movies and people.
- 2008-Nov-02: postmarkup is a bbcode (bulletin board code) rendering engine for Python. It allows users to enter a text with restricted markup codes that it then converts safely to html. 
- 2008-Oct-30: smisk is another web service framework. 
- 2008-Oct-26: FunkLoad, is a web
testing and load generator. This is discussed in a PyCon 2006 talk, the slides
are here. One user applies this to testing a web site.
- 2008-Oct-22: Chameleon is a web page templating system that compiles templates to some form of byte code. Sounds rather interesting. 
- 2008-Oct-07: A discussion of Python web platforms and Deliverance. 
- 2008-Oct-03: madpy is a new content management system. 
- 2008-Oct-02: pyjamas, allows you to
use the Google Web Toolkit to do AJAX from Python. There is now a second version: pyjamas2.
- 2008-Sep-23: Nagare is another Python web framework. The project homepage is here. 
- 2008-Sep-18: Gracie (project home page) is an OpenID provider for local accounts  
- 2008-Sep-13: The Python weblog package (or more recently here) is a simple blogging tool that produces static HTML files as output.  
- 2008-Aug-29: Diva is a light weight web framework for Python. 
- 2008-Aug-27: gaeo is a simple web framework for the Google Appengine. 
- 2008-Jul-30: Pinax is a project to create an out-of-the-box Django-based website, ready for you to add content too. The main website for this is pinaxproject.com. 
- 2008-Jul-27: Frog, is
a Blog server application written for Snakelets. It is small but has
many features, such as BBcode markup, XHTML+CSS page output, multiple
users, no database required, anti-spam measures, email notification, Smileys, RSS
feeds, and more. This is now at frog-blog with a home page here on SourceForge. 
- 2008-Jul-03: Discussion of Twisted, including some of the difficulties of testing. 
- 2008-Jun-27: A discussion of how one would go about writing asynchronous code with Twisted. 
- 2008-Jun-24: werkzeug offers a collection of utilities for WSGI applications and other HTTP related tasks. 
- 2008-Jun-11: Jinja, a simple
pythonic template engine. This has been updated to jinja2.
- 2008-Jun-11: Django is used in a number of mash-up sites, perhaps this is to be the future of journalism. 
- 2008-Jun-06: How to develop in Django without projects. 
- 2008-May-28: webskine is a simple WSGI blog.  
- 2008-May-28: Mantissa: and Alternative to LAMP describes the new Mantissa web stack for the Python Twisted environment. A quick set up guide for Mantissa is here. 
- 2008-May-24: A short guide to using Amazon S3 for incremental backup storage with help from boto, GnuPGInterface, librsync and duplicity. 
- 2008-May-15: Using secure authentication cookies with Django, this implements part of a paper on secure cookie protocols. 
- 2008-May-12: Political Loyalties in Web Frameworks takes a look at several Python frameworks and classifies them into right or left leaning camps. 
- 2008-May-10: StarScream is a tool for writing presentations in reStructuredText, the slides and handouts it produces are DHTML. Home page on Google Code.  
- 2008-Apr-25: Dandelion is an experimental wiki engine written in Python. 
- 2008-Apr-18: Breve is a Python web template engine that uses a domain specific language for its templates. 
- 2008-Apr-17: Athena is an AJAX/Commet like system for Nevow and Twisted. 
- 2008-Apr-17: Vertex is an implementation of the Q2Q protocol (better than P2P) in Twisted. 
- 2008-Apr-17: FPyS is a Python library for interacting with the Amazon Flexible Payment Service. 
- 2008-Apr-17: Another Do-It-Yourself Framework is an updated tutorial on building a web framework using WSGI and WebOb. 
- 2008-Apr-14: WebOb,
a request/response handler object, main page is here, here on the
CheeseShop. WebOb provides wrappers around WSGI requests and responses.
- 2008-Apr-11: On 8-Apr-08 Google started to preview their Google App Engine, discussed here on Slashdot.
Their overall design goals:
- make it easy to use
- make it easy to scale
- free to start (small apps)
What Google will do for you:
- Run the web applications
- provide the full life cycle, logs, status, updating, database...
- provide access to Google's scalable infrastructure, google accounts, big table, Google FS
To do this the application stack they provide has:
- Scalable serving infrastructure
- Python runtime
- Web based administration console
- Datastore (based on big Table)
Their environment does allow you to run a local test server, so you can do your application development on your own private machine.
They provide a basic Django template module.
Seems to follow the Python wsgiref module.
An initial presentation of this is in these videos.
One of the things this does is to get you to build things using Google tools which may result in an implementation that is difficult to move to some other service provider without doing a complete rewrite. Whereas if you were using Amazon's EC2 you are writing for a more standard LAMP style environment so you should be able to take whatever you develop and run it somewhere else. Of course, if you keep this all in mind it might not be a big issue, use the Google tools to develop a prototype and test the waters before investing in a full scale project.
With Google's use of Python as the first application language to be supported by this system it has caused an unprecedented stir in the Python community, see:
- 2008-Apr-07: A discussion of selecting the right web framework for the job. And another, more detailed, look at this. 
- 2008-Apr-03: A JSON RPC client and server pair. Ian Bicking thinks that doing this with WebOb makes more sense and provides a tutorial here.  
- 2008-Apr-03: One s3fs to rule them all a quick note on interfaces to the Amazon S3 storage service, two of which are implemented in Python. 
- 2008-Mar-11: Easy testing of CGI scripts using a simple CGI server written in Python. 
- 2008-Mar-11: iWeb Space an attempt at a flexible service for lightweight AJAX in Python. 
- 2008-Mar-05: WikklyText is a Python based wiki compatibile with TiddlyWiki, the main site is here. 
- 2008-Jan-29: The Python software used to run the Comprehensive Knowledge Archive Network (CKAN) site. 
- 2008-Jan-21: In Eating My Own Dogfood Christopher Lenz talks about his custom blogging software that he's writing in Python. 
- 2007-Dec-18: Using cryptography to protect data stored in client side cookies.  
- 2007-Dec-18: Some praise for Pylons over Django. Contrast that to this discussion of
some reasons to prefer Django over TurboGears (using Pylons). 
- 2007-Dec-13: A note on how WSSE Authentication works. 
- 2007-Oct-21: Some observations on using Python to power the BeContrary web site. 
- 2007-Oct-21: Using reStructuredText
to write for the web and printed media. Praise for ReST can be found here.
- 2007-Oct-12: PyWPS is a Python implementation of GRASS, the Geographic Resources Analysis Support System that is used for geospatial data management and analysis, image processing, graphics/maps production, spatial modeling, and visualization. 
- 2007-Oct-11: Using
the Pyparsing module
to implement recursive decent parsers in Python, for when
string.split() is not enough. Includes an example of doing HTML
scraping. There is a support Wiki for this here. O'Reilly is publishing a small book on using this: Getting Started with Pyparsing.
- 2007-Oct-05: htmltotext, a package to extract text from HTML pages for the purposes of searching. 
- 2007-Oct-01: Scripting inkscape with Python to slice web pages into layers. 
- 2007-Sep-30: Photo uploader, a Python script to upload photos to various sites. 
- 2007-Sep-26: lara, a web framework in Python. 
- 2007-Sep-23: In this Show Me Do video Jeff Rush walks through the code of a simple web server built on the twisted platform. This demonstrates Nevow, STAN (for the template language) and an RSS feedparser. 
- 2007-Sep-14: FlatAtompub, a small atom publishing protocol program. 
- 2007-Aug-27: python-cjson, is a module that provides C implementation of JSON encoding and decoding that can be up to 250 times as fast as native Python.
- 2007-Aug-24: Implementing a simple HTTP server with IronPython's (.NET) HttpListener. This should also be able to handle HTTPS connections. 
a (fast) Wikipedia offline reader, has quite a lot of interesting
RSS files with ElementTree
html5lib, is a
module for processing web pages using the new HTML5 specification.
Orbited, an http
daemon that can be used to write real-time web applications (such as
chat rooms) where the server pushes out updates to the browsers. There
is some discussion of this
A simple Python
script to make use of Yahoo's "term extraction" service
is a portable Django development environment for Windows
is an Apache module that provides a WSGI compliant interface for
hosting Python based web applications
JSON data from within Python
pysnmp, a Python SNMP
a comprehensive HTTP client library.
Pythomnic, a system for
building reliable network services in Python, including addressing
redundancy and the need to be able to ugrade modules without downtime. Discussed here
CR a tiny
pasword-protected file server
a throttling HTTP proxy in Python
another light-weight web platform for Python.
a module for using PyLucene
for full text searching from within the TurboGears world
Aspen is a
WSGI-centric web server.
is a social networking platform, it gets discussed
here in the context of improving server performance by using static
HTML when possible.
OHM, the Object HTTP
Mapper is a library for serving Python objects at REST-style HTTP APIs
and for consuming REST-style APIs as Python objects.
a set of Python APIs for use with popular online mapping services
a web application framework
is a robust, high performance CORBA implementation for C++ and Python
Python package for assembling and disassembling raw IP packets
is a python web framework, inspired by Django, Turbo Gears and Web.py
palabre, a Flash XML
multiuser socket server
porcupine is a web
a rapid development framework for AJAX using the SPyRO web services
an XHTML generator that uses a simple markup scheme
markup.py, an HTML
and XML generator in Python
a super-small, super-fast and super-easy web framework, with all those
supers I wonder why its not called superweb?
is an open-source bulletin board system written in Python
Python application to check websites and HTML documents for broken links
TCP WSAECONNRESET - connection reset by peer errors being caused by
applications filling the TCP transmit buffer on windows.
LDAP client API for Python, the python-ldap project on
urlimport, a module
for importing modules/packages over the net.
accessing the Amazon S3 service from Python.
Myghty has been used
to host the bittorrent.com website (50 million page views per day).
Some more on Myghty.
localhost web applications server
web-framework written in Python, it allows you to write pages as Python
script, as Karridell services, as HTML in Python or as Python in HTML.
based on UDP
is an integrated wiki, bug tracker and source code management tool written in
source VOIP implemented in Python
The Ming Server, a
simple Python web application server
a P2P system called Q2Q
Catching a hanging
application that uses Twisted
an HTTP client library
content from HTML pages
Web frameworks, WSGI
and Pylons, more comments
A PyCon talk on writing Effective
Ajax with TurboGears
The django Book, is
being pre-released on the web for eventual print distribution (Nov'06 announcement
Build a To-do List in 30 Minutes, a tutorial introducing Django
At the end of Jan'06 Guido started looking into webframeworks for
Python. Here are some comments
Some comments on
playing with Django. Django versus
Cheetah. Various reviews
of Django. Some observations
on using ElementTree with Django. Django for non-programmers.
Guido has taken
note of Django. A podcast
interview with Guido where Django is mentioned as a favourite. Django
after using Rails.
Django, a web framework for publishing, this was built by the Lawrence Journal-World people (and
is used for their site according to this
a Python library that supports IPP (internet priniting protocol)
requests, and includes support for CUPS print servers. From Pykota.
is a Wiki written in Python
Spyce, this is a web environment
for Python that allows Python code to be embedded in the pages
Multi User Server Client Linking Environment (freshmeat)
has a Python API. It is an N-way messaging server and
networking API. It includes client-side networking
APIs for various languages, including C, C++, C#,
Delphi, Java, and Python. MUSCLE lets programs
communicate over a network via streams of
serialized Message objects. The included server
program ("muscled") lets its clients message each
other and store information in its server-side
hierarchical database. The database supports
flexible queries via hierarchical wildcarding, and
"live" updates via a subscription mechanism.
a simple comparison of a Python BaseHTTPServer
to a .NET HttpListener. An https
server built on Medusa's
URLS, and a Python module
to implement them
a generic, multi-threaded web crawler
httpy, a sane and robust HTTP library for
J2EE, Rails, Zope, TurboGears and Django.
Comparing the CherryPy
and RhubarbTart web frameworks. A book
on CherryPy is to be written.
specializes in hosting web sites that are implemented in Python.
new web hosting packages with better Python support
a minimal, fast http daemon
Why not to send
pickles in RPC calls
is a web page publishing script, it keeps a remote web server's set of
files in sync with a master copy you have on your machine using FTP to
PyTML, is a templating
language based on Python and XML, it expands HTML embedded in XML files into
full web pages
a "Ruby on Rails" like thing for Python, the docs for it are here. The
book: Rapid Web Applications with
TurboGears is currently
in production, and an electronic preview of the first half is
is a NAT traversal library, this allows one to discover what the
external IP address is from within the protected side of a NAT firewall.
Authentication and the urllib2.
a library for doing asynchronous IO from Python
a Python web application server
a module containing an assortment of tools for net tasks including
acquiring, parsing and storing web sites.
The snakelets web
A note on SSL
authentication and HTTPS
simplest Python web server is the test code that is built into the
web server, including the ability to do HTTP uploads
- 2007-Aug-24: mod_python is a module
that embeds Python within the Apache web
server. One limitation
is that it only seems to work in directories that are open access or
controlled by Basic authentication (not Digest authentication). Here is
a recipe for doing Digest
is an extension module for mod_python. A WSGI wrapper