Kotti is a high-level, Pythonic web application framework. It includes a small and extensible CMS application called the Kotti CMS.
Kotti is most useful when you are developing applications that
Built on top of a number of best-of-breed software components, most notably Pyramid and SQLAlchemy, Kotti introduces only a few concepts of its own, thus hopefully keeping the learning curve flat for the developer.
You can try out the built-in CMS on Kotti’s demo page.
The Kotti CMS is a content management system that’s heavily inspired by Plone. Its main features are:
For developers, Kotti delivers a strong foundation for building different types of web applications that either extend or replace the built-in CMS.
Developers can add and modify through a well-defined API:
Kotti has a down-to-earth API. Developers working with Kotti will most of the time make direct use of the Pyramid and SQLAlchemy libraries. Other notable components used but not enforced by Kotti are Colander and Deform for forms, and Chameleon for templating.
Continuous testing against different versions of Python and with
PostgreSQL, MySQL and SQLite and a complete test coverage make
Kotti a stable platform to work with.
You can download Kotti from the Python Package Index, it takes only a few moments to install.
Please report any bugs that you find to the issue tracker.
If you’ve got questions that aren’t answered by this documentation, contact the Kotti mailing list or join the #kotti IRC channel.
Kotti itself is developed on Github. You can check out Kotti’s source code via its GitHub repostiory. Use this command:
git clone git@github.com:Pylons/Kotti
Kotti uses pytest, zope.testbrowser and WebTest for automated testing.
Before you can run the tests, you must install Kotti’s ‘testing’ extras. Inside your Kotti checkout directory, do:
bin/python setup.py dev
To then run Kotti’s test suite, do:
bin/py.test
You can find the list of Kotti’s translations here. Kotti uses GNU gettext and .po files for internationalization.
You can set the pyramid.default_locale_name in your configuration file to choose which language Kotti should serve the user interface (see Configure the user interface language).
In order to compile your .po files to .mo files, do:
bin/python setup.py compile_catalog
To extract messages and update the existing .pot and .po files, do:
bin/python setup.py extract_messages update_catalog
See also Internationalization from the Cookbook.
Kotti was created by Daniel Nouri. Thanks to the following people for support, code, patches etc:
- Andreas Kaiser
- Andreas Zeidler
- Christian Neumann
- Gouji OCHIAI
- Jeff Pittman
- Mike Orr
- Marco Scheidhuber
- Nuno Teixeira
- Steffen Lindner
- Tom Lazar
- Wim Boucquaert
- The University of Coimbra
- Consipere