In 2007, the Swiss web agency, Divio AG, launched the free content man­age­ment system, Django CMS, which is based on the 2005 web framework Django.  Like the framework, the content man­age­ment system is written in the pro­gram­ming language, Python, which can use a great number of libraries. The Django framework enables django CMS to auto­mat­ic­ally use its complete range of tools and ex­ten­sions.

Creating your dream website with Django and django CMS

The close con­nec­tion between the CMS and the framework made for a complex and ambitious project from the very beginning, with django CMS quickly becoming an es­tab­lished 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 gen­er­a­tion. They are primarily char­ac­ter­ised by the fact that the codes are based on one another. This means, for example, that a Django pro­gram­mer only needs to write half as much code as a PHP pro­gram­mer. This is also reflected in django CMS, which boasts an im­press­ive range of prop­er­ties, including:

  • A modular page structure, various kinds of pre-written, block-based content
  • Front end code optimised for speed and bandwidth
  • Easy in­teg­ra­tion of existing plugins and de­vel­op­ment of new ones
  • Intuitive, user-friendly drag-and-drop interface
  • Complex data sources in­teg­rated with minimal effort

With the abundance of benefits offered by django CMS, it’s no wonder this content man­age­ment is so popular among both editors and web de­velopers. 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 auto­mat­ic­ally on the user’s request. It’s possible to edit blocks both in the back end and directly in the front end. This is par­tic­u­larly be­ne­fi­cial 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 mar­ket­place and GitHub. These content ex­ten­sions come in the form of plugins, add-ons, or special django CMS templates, all of which can be down­loaded and in­teg­rated in your project, free of charge. Try out different com­bin­a­tions 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 com­mu­nic­a­tion with the database and auto­mat­ic­ally creates ad­min­is­trat­or masks and forms for data sources. Ad­di­tion­ally, you can make use of the wide range of available Django ap­plic­a­tions.

The django CMS features at a glance

As with many other open source CMSs, django CMS’s main strength is its ver­sat­il­ity, which is a result of the growing number of add-ons and the many functions they enable. Re­gard­less of these ex­ten­sions, just by down­load­ing ad­di­tion­al django CMS templates, the system presents a con­sid­er­able 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 ex­ten­sions can be used in different sections of the website
  • Multis­ites: use of several websites over the same ad­min­is­trat­or interface
  • Flexible ar­chi­tec­ture: all elements can be po­si­tioned freely
  • Rights man­age­ment: 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 man­age­ment: simple man­age­ment 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 man­age­ment system, you won’t be short of search engine op­tim­isa­tion options. For each page created, you can specify title and de­scrip­tion in­di­vidu­ally, and you can also make the URL search engine friendly. There is an ad­di­tion­al series of ex­ten­sions, e.g. djangocms-page-meta. The template also enables users to add Twitter cards as well as their search result snippets from Facebook (Open Graph).

When comparing django CMS to other content man­age­ment systems, one area where the Swiss software falls short is in its inability to host web stores. However, the in­de­pend­ent e-commerce software, django shop, provides an elegant solution that also uses the Django framework and thus perfectly com­ple­ments 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. Gen­er­at­ing func­tion­al pages is an easy and automatic process, and elements can be edited via drag-and-drop and double-click. Thanks to an ever-in­creas­ing range of ex­ten­sions, you can even tackle very complex projects. django CMS is a great option for small and medium-sized busi­nesses in par­tic­u­lar, as this platform allows you to get your project off the ground without having to rely heavily on external as­sist­ance.  Go to the django CMS official website to try out the demo or download the newest version of the content man­age­ment 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 auto­mat­ic­ally reset. The following com­pon­ents are required to install the open source system:

  • Python
  • Django (framework)
  • Post­gr­eSQL or MySQL
  • html5lib (Python library)
  • The ex­ten­sions django-classy-tag, django-treebeard, django-sekizai, and djangocms-admin-style (all available on GitHub)
Go to Main Menu