django CMS: the Python system at a glance

In 2007, the Swiss web agency, Divio AG, launched the free content management system, Django CMS, which is based on the 2005 web framework Django.  Like the framework, the content management system is written in the programming language, Python, which can use a great number of libraries. The Django framework enables django CMS to automatically use its complete range of tools and extensions.

Creating your dream website with Django and django CMS

The close connection between the CMS and the framework made for a complex and ambitious project from the very beginning, with django CMS quickly becoming an established presence on the open source CMS scene. Like the Ruby on Rails framework, which is based on Ruby, Django has been described as the web framework of the next generation. They are primarily characterized by the fact that the codes are based on one another. This means, for example, that a Django programmer only needs to write half as much code as a PHP programmer. This is also reflected in django CMS, which boasts an impressive range of properties, including:

  • A modular page structure, various kinds of pre-written, block-based content
  • Front end code optimized for speed and bandwidth
  • Easy integration of existing plugins and development of new ones
  • Intuitive, user-friendly drag-and-drop interface
  • Complex data sources integrated with minimal effort

With the abundance of benefits offered by django CMS, it’s no wonder this content management is so popular among both editors and web developers. The block-based structure allows users to adjust the design of the page and content by moving various elements (blocks of text, images, videos, forms, etc.) to the desired location. The system creates page trees and menus automatically on the user’s request. It’s possible to edit blocks both in the back end and directly in the front end. This is particularly beneficial if you want to replace, integrate, or remove elements from an active website later on. It also provides different kinds of pre-written content, such as blog pages, FAQs, and job ads, meaning users only have to add their personal data.

You’ll find all the standard elements and hundreds more on the django CMS marketplace and GitHub. These content extensions come in the form of plugins, add-ons, or special django CMS templates, all of which can be downloaded and integrated in your project, free of charge. Try out different combinations of elements as desired; changes can be deleted at any time. Using these pre-written modules, it will soon become clear just how much time you can save when setting up your web project.

If you’re lacking a function and happen to have the necessary Python know-how, you can simply create your own extension. The basic framework for this task has proven to be very useful; Django handles the communication with the database and automatically creates administrator masks and forms for data sources. Additionally, you can make use of the wide range of available Django applications.

The django CMS features at a glance

As with many other open source CMSs, django CMS’s main strength is its versatility, which is a result of the growing number of add-ons and the many functions they enable. Regardless of these extensions, just by downloading additional django CMS templates, the system presents a considerable range of functions:

  • Double-click editing function: by double-clicking on text, images, buttons, or other content, you can open a pop-up window with the correct editing mode
  • Front end editing: it’s also possible to edit all of the content blocks used in the front end
  • Reusable plugins: django CMS extensions can be used in different sections of the website
  • Multisites: use of several websites over the same administrator interface
  • Flexible architecture: all elements can be positioned freely
  • Rights management: specific rights for every user
  • Version control: all changes to the project are saved, so earlier versions can be restored
  • Languages: all content is available in multiple languages. By changing settings, users can determine what happens if the desired content isn’t available in the target language. 
  • Media management: simple management of all types of media, including images, PDFs, videos, etc.

How can I use django CMS for SEO and e-commerce?

If you’ve decided on django CMS as your chosen content management system, you won’t be short of search engine optimization options. For each page created, you can specify title and description individually, and you can also make the URL search engine friendly. There is an additional series of extensions, e.g. djangocms-page-meta. The template also enables users to add Twitter cards as well as their search result snippets from Google+ and Facebook.

When comparing django CMS to other content management systems, one area where the Swiss software falls short is in its inability to host web stores. However, the independent e-commerce software, django shop, provides an elegant solution that also uses the Django framework and thus perfectly complements django CMS. Further useful django CMS templates include:

django CMS: an option full of potential

django CMS offers an excellent array of tools that allow you to create and manage websites and develop apps. Generating functional pages is an easy and automatic process, and elements can be edited via drag-and-drop and double-click. Thanks to an ever-increasing range of extensions, you can even tackle very complex projects. django CMS is a great option for small and medium-sized businesses in particular, as this platform allows you to get your project off the ground without having to rely heavily on external assistance. 

Go to the django CMS official website to try out the demo or download the newest version of the content management system. There, you’ll find example pages that allow you to try out django’s features with the ‘Edit’ function. After a given period, these changes will automatically reset. The following components are required to install the open source system:

  • Python
  • Django (framework)
  • PostgreSQL or MySQL
  • html5lib (Python library)
  • The extensions django-classy-tag, django-treebeard, django-sekizai, and djangocms-admin-style (all available on GitHub)