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.
Zope-based Solutions
The most established Python-based content management systems are those derived from Zope, notably Plone, Nuxeo CPS (starting with v5 Nuxeo switched to Java as its development platform), Silva, ZMS and KARL. 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.
Non-Zope 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 organizations wishing to immediately deploy a complete and working solution.
ACRCms Flexible Web CMS based on Turbogears and SQLAlchemy
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).
django-cms written on top of django. Provides a full cms stack with the power of a webframework under it. Easily extendable.
ikaaro offers content management functionality. v0.62.9 released: 2012-05-28
Kotti is a high-level, Pythonic web application framework, with a built-in CMS. Kotti is based on Pyramid and SQLAlchemy. v0.9.2 released: 2013-10-15
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.
MediaCore Video CMS is an open source media focused content management system. It features video & audio support, YouTube & Vimeo integration, podcasting, iTunes RSS generation, user-submitted content, embedded media player, wysiwg edior, search, and is highly customizable. There is both a front-end for users and a back-end for administrators. It is built upon Pylons, SQLAlchemy, MYSQL and runs with Apache, Fast_CGI or Mod_WSGI.
Merengue is a fully featured CMS framework built on top of Django framework. It’s not only a plug-and-play CMS but a framework to build CMS sites at top speed with clean and re-usable code.
Mezzanine is a content management platform built using the Django framework. It is BSD licensed and designed to provide both a consistent interface for managing content, and a simple, extensible architecture that makes diving in and hacking on the code as easy as possible.
Opps CMS A Django-based CMS for the magazines, newspappers websites and portals with high-traffic, Source
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.
Pyplate is a simple SQLite CMS containing most of the basic features needed to build simple web sites. Static page generation makes for great performance, and the UI makes admin tasks easy.
Quokka CMS Flask and MongoDB powered CMS, github.
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.
teeny_tiny_cms runs on Webware and uses SQLObject, SQLite and Docutils. Link is broken.
Tendenci is an open source CMS specifically developed for nonprofit and association websites. Tendenci is written in Python on a Django framework, includes a plugin builder for easily adding additional, custom plugins, and has all the features nonprofits need in a complex website including integration with merchant account for online payments, event calendar and event registration, membership management, job board, business directories, and more. Tendenci's public repository can be found on Github: https://github.com/tendenci/tendenci.
Wiki Solutions
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.
Editorial Notes
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.