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 architecture that makes diving in and hacking on the code as easy as possible.
Its goal is to resemble something like Wordpress, with an intuitive interface for managing pages and blog posts. Mezzanine takes a different approach from other Django applications in this space like Pinax or Mingus that glue together a lot of reusable apps, instead opting to provide most of its functionality included with the project by default.
On top of all the usual features provided by Django such as MVC architecture, ORM, templating, caching and the automatic admin interface, Mezzanine provides the following features.
- Hierarchical page navigation
- Save as draft and preview on site
- Scheduled publishing
- Drag-n-drop page ordering
- WYSIWYG editing
- In-line page editing
- Drag-n-drop HTML5 forms builder with CSV export
- API for custom content types
- SEO friendly URLs and meta data
- Search engine and API
- Configurable dashboard widgets
- Multi-device detection and template handling
- Shopping cart module (Cartridge)
- Blogging engine
- Themes
- Tagging
- One step migration from other blogging engines
- Built-in threaded comments, or:
- Disqus integration
- Gravatar integration
- Google Analytics integration
- Twitter feed integration
- bit.ly integration
- Sharing via Facebook or Twitter
- Custom templates per page or blog post
- Built-in test suite
- 960.gs integration
The Mezzanine admin dashboard:
Mezzanine has no explicit dependencies apart from a standard Django environment using.
Mezzanine is designed however to be used most effectively in conjunction with the following libraries.
- setuptools
- Python Imaging Library (PIL)
- django-grappelli <= 2.0
- django-filebrowser <= 3.0
Assuming you have setuptools installed, the easiest method is to install directly from pypi by running the following command, which will also attempt to install the dependencies mentioned above:
$ easy_install -U mezzanine
Otherwise you can download Mezzanine and install it directly from source:
$ python setup.py install
Once installed, the command mezzanine-project
should be available which
can be used for creating a new Mezzanine project in a similar fashion to
django-admin.py
:
$ mezzanine-project project_name
You can then run your project with the usual Django steps:
$ cd project_name $ python manage.py syncdb --noinput $ python manage.py runserver
You should then be able to browse to http://127.0.0.1:8000/admin/ and log
in using the default account (username: admin, password: default
). If
you'd like to specify a different username and password during set up, simply
exclude the --noinput
option included above when running syncdb
.
Mezzanine is an open source project that is managed using both Git and Mercurial version control systems. These repositories are hosted on both Github and Bitbucket respectively, so contributing is as easy as forking the project on either of these sites and committing back your enhancements.
For general questions or comments, please join the mezzanine-users mailing list. To report a bug or other type of issue, please use the Github issue tracker.
- "I am enjoying working with Mezzanine - it is good work." - Van Lindberg
- "Impressed with Mezzanine so far." - Brad Montgomery
- "You need to check out the open source project Mezzanine. In one word: Elegant." - Nick Hagianis
- "Mezzanine looks pretty interesting - tempting to get me off Wordpress." - Jesse Noller
- "Who came up with the name Mezzanine? I love it, like a platform between the client's ideas and their published website. Very classy!" - Stephen White