
Discover Mezzanine, a powerful Django CMS with ready-made blog features, templates, and forms, and learn to build a three-page blog using Bootstrap, hero images, and navigation.
Install mezzanine inside a virtual environment, create and configure your project, build a blog theme app with static assets, run the development server, and log into the admin dashboard.
Navigate the Mezzanine admin dashboard, create pages and blog posts with publish dates and custom title, URL, and keywords, and use built-in features like media library and comments and redirects.
Discover how mezzanine provides out-of-the-box blog functionality with prebuilt models, accounts, views, and templates, and how to override them to tailor your Django blog.
Learn to customize Mezzanine templates in a Django blog by pulling default templates into your project, tailoring the base template, and configuring top navigation, menus, and a flexible search form.
Introduce our theme base setup by integrating the Bootstrap for clean blog theme with Mezzanine, configuring templates and static assets, and refining the base.html structure for the home page.
Swap in air clean blog navigation for a mezzanine cms Django blog, align site title and tag line, remove the search form, and configure the primary menu with admin pages.
Finish building the homepage for a Mezzanine Django blog by trimming the base template and wiring the page header, content block, and hero image with the static tag.
Explore three Mezzanine homepage configurations—static template, editable page in the page tree, and a blog post homepage—by adjusting settings, blog slug, and admin page objects with practical demonstrations.
Learn to build a responsive Mezzanine blog by finalizing the home and about pages, implementing a consistent container and hero image through base templates, page headers, and admin-driven content.
Create a mezzanine contact page by building a multi-field form (name, email, phone, message) with HTML5 placeholders using the form builder, then configure Gmail delivery and test submissions.
Finish the contact page by adding a hero image with a path-based conditional, and style the form using templates, floating label groups, and 100 percent width within the base layout.
Learn to make blog posts dynamic on the home page by looping a blog post list template with Mezzanine, set up pagination, and customize excerpts, authors, and read more links.
Develop a dynamic blog post detail page in Mezzanine CMS, Django, implementing hero image, post meta, comments, share buttons, and previous/next navigation within the template system.
Finish the Mezzanine blog cleanup by polishing the header, titles, and scripts. Resolve jQuery and form errors, then reveal front-end editable fields.
Resolve blog slug conflicts in mezzanine by keeping the blog slug, address pages slug behavior, and implement a permanent redirect from /blog to the home page.
Enable featured images for blog posts in Mezzanine by turning on the blog use featured image setting. Upload images to media library to display them on list and detail pages.
Extend the blog post model with a retina field using Mezzanine's extra model fields setting, and customize the admin to expose it, then run migrations to update the database.
Learn to set up retina images on the home page with Mezzanine and retina dodgiest, switching to an image field and uploading 2x images for blog posts.
Learn to enable front-end editing with Mezzanine by wrapping content in editable tags, allowing admins to modify blog post title, content, and images directly on the page.
Customize the TinyMCE editor in mezzanine by copying its setup script, configuring the path, and adjusting the toolbar and plugins. Add or remove buttons and style with CSS.
Learn to add a syntax highlighter to a Mezzanine blog by installing the TinyMCE code sample plugin and Prism, then insert highlighted code blocks into posts.
Learn to implement blog filters in Mezzanine by adding date and category dropdowns, using template tags and Bootstrap styling to filter posts while preserving the header.
Migrate your mezzanine blog database to PostgreSQL for a robust, scalable backend; install PostgreSQL, configure settings, run migrations, and transfer data with dumpdata and loaddata.
Deploy a mezzanine blog to production with fabric on a Digital Ocean droplet, configuring Python 3, engine X, Unicorn, PostgreSQL, and run collectstatic and migrations.
Install cartridge to turn your Mezzanine blog into a functional e-commerce store, configure installed apps and middleware, run migrations, and verify the shop, products, and URLs.
Add products and create multiple variations using size and color options, upload images, set stock, pricing, sale dates, and default variations in the Mezzanine CMS shop.
Style the product page by copying a mezzanine template, add a shop hero header based on the URL, arrange inline thumbnails, and fix bootstrap form styling for add-to-cart.
Add a few more products, including a hoodie, t-shirt, and bags, with color and size variations, pricing and stock details, and images to enable category organization.
Learn to create and manage product categories and category pages with Mezzanine and cartridge, build category-specific listings like bags and clothing, and tailor templates and navigation for a shop page.
The Github repository for the entire course can be found here:
https://github.com/rodgtr1/mezzanine-tutorial
Looking for a WordPress alternative? Enjoy programming in Python? Do you love Django but wish you could have the core features there already by default and with a friendlier interface?
Well Mezzanine might be exactly what you are looking for.
Mezzanine is a powerful Content Management System that is built using the Django framework, but differs in that instead of having to build out models/view/templates for basic features, Mezzanine provides many of them by default, including the ability to create pages and posts in the admin with a beautiful, user-friendly interface.
Mezzanine can also be added onto a Django project and can be extended with e-commerce functionality.
In this course, you will learn all about its features as we build out a clean, responsive blog with dynamic blog posts, custom hero images, a contact form, and much more using Mezzanine's tools and templates.
Why this class?
Because aside from the docs, there are hardly any tutorials out there for using Mezzanine, and any that you do find are from 4-5 years ago. Therefore, I decided to create one comprehensive, thorough course on it myself.
Also, it's common for clients to ask for blogs to be built, but are opposed to using WordPress for various reasons. Mezzanine offers the perfect alternative for them!
Requirements
This is a course on Mezzanine, not on HTML or CSS, so it would be good to have an understanding of the two. This will be assumed in the course.
Also, since Mezzanine is built with Python and on the Django framework, the student should have a basic understanding of those as well, however because of the dozens of templates shipped with Mezzanine, these can be picked up rather quickly as we use those as "guides."
Who should take this course?
Anyone who wants to learn more about Mezzanine
Anyone who is looking for a WordPress alternative for their blog
Anyone who finds Django overkill for creating blogs for their clients.
Anyone looking to add a new tool to their web development portfolio.
Whether you fit into these categories or not, Mezzanine is an excellent CMS and I am certain you will be as excited to use it as I am.