What is the difference between Django and Django CMS?

user3699509 picture user3699509 · Jun 2, 2014 · Viewed 8.1k times · Source

I am new to Django, so can someone please tell me the exact difference between Django and Django CMS.

I have to design a complete website for educational purpose, should I use Django CMS or without it also i can do my job.

Answer

Maxime Lorant picture Maxime Lorant · Jun 2, 2014

Django is a web framework which can sometimes be used to make a CMS, but it is not, by itself, a full CMS.

That in itself indicates that the difference between the two is quite huge:

Django

If you are running a new Django website the first time, you will get only a "It worked" and nothing else, no action possible.

First page of Django

From this point, you need to create new applications, write some Python code, create HTML templates, define URL patterns, set up a database... A lot of programmer tasks.

The Django default project can be compared to the It works! of Apache or nginx: nothing can be done with the website yet; you need to invent everything.

With Django, the development is way easier than starting from scratch, however, as it has a lot of features like authentication, administration or ORM are already present, allowing you to focus not on "table stakes" that every site must support but instead on the features that make your project different from any other.

Django CMS

  • If you are running a new Django CMS project for the first time, you will get a more friendly page, which will invite you to connect to the admin and start customize you website, from you browser.

First page of Django CMS

From this point, everything has already been installed and you can start to create a static website (almost) without touching a text editor and Python code. You can create pages, organise the layout and page categories from the CMS' admin, install some plugins made by the community to extend features, etc.

Django CMS is useful if you want a static website (portfolio, small company website, ...) of an e-commerce solution

What should I do?

  • If your website is only a few pages without user interaction, you can use Django CMS. It will be way easier for you to get running and for you to maintain going forward.
  • If you want to have one specific feature which requires some Python development, you can develop a Django CMS plugin and integrate it.
  • If you really need a complete set of features & interactivity with user, you will need create a Django project from scratch.