Content Management Systems
A content management system (CMS) might be simply defined as a system which supports the publishing or sharing, editing or manipulation, searching and indexing, archival or versioning of content, frequently documents, typically using Web technologies. A more extensive definition can be found in the Wikipedia topic entry.
In plainer terms, content management systems are the applications used to manage Web sites where the writers, editors and users are able to upload, edit and manage content without needing to know too many of the technical details about how the site actually works.
Python-based products, although in the minority in the larger market of CMSs, possess several inherent advantages. Python's Unicode capabilities, for example, make its derived products particularly popular in continental Europe and Asia, as compared to those based on PHP, Ruby, and so on.
The most established Python-based content management systems are those derived from Zope, notably Plone, Nuxeo CPS (though Nuxeo 5 will be switching to Java as its development platform), Silva and ZMS. These solutions have been used in large scale and high profile deployments over a number of years, and a range of organisations provide support and services for those solutions.
For those wanting non-Zope CMS solutions, there are a few options which may provide at least some of the features found in the more established solutions mentioned above, and the solutions mentioned below may be targeted more towards developers than individuals or organisations wishing to immediately deploy a complete and working solution.
BAOW is a lightweight content management system based on SQL database (Firebird/InterBase, MySQL, PostgreSQL, SQLite). v1.1 released: 2005-07-07
Django offers elementary support for content management (and was initially derived from the lower levels of a commercial content management system).
ikaaro offers content management functionality.
KPAX is a complete CMS solution based on web2py. It provides wikis, blogs, news, rss feeds, surveys, assignments, web pages, versioning, group based roles, Central Authentication System, upload and downloading media streaming, embedded media player, wysiwyg editor, ajax search, customizable templates. Works with SQLite, MySQL, PostgreSQL, Oracle or MSSQL. Can be downloaded from the web2py appliances repository
Leonardo extensible content management system, architected in a REST-like style. Initially focused on providing for personal websites with a password-protected wiki and blog (including Atom feed). It can be run as CGI and uses the filesystem as a database. v0.7.0 released: 2006-03-09
Madpy is built on top of apache , mod_python , postgresql and cheetah templates. Supports creating content in more than one language, clean url's , url to object mapping and madata an MVC like mechanism.
PyLucid is a lightweight CMS written in Python WSGI. No shell account is needed. To run PyLucid you need a standard Web server with Python (at least v2.3), CGI and mySQLdb.
Skeletonz is simple, powerful, extensible, reliable. Has been in development since October 2005. Ajax based editor with spell checking & UTF-8 support. High performance: best result is around 600 request/sec. Open source, GNU GPL.
Despite their simple beginnings, many wiki solutions offer many of the capabilities listed above. Numerous wiki projects have been written in Python. The following are the most widely deployed:
MoinMoin is the solution used to publish and manage the information on this page!
Trac provides a wiki within a larger solution for the management of software projects and project information -- bug tracking, source browsing, and so on.
See a more complete list of wiki solutions on the PythonWikiEngines page.
The above lists should be arranged in ascending alphabetical order - please respect this when adding new solutions. When specifying release dates please use the format YYYY-MM-DD.