During a popular local Drupal meetup, volunteers presented CMS's as alternatives to Drupal, comparing them using Drupal terminology. (Review the background on the comparison. )

None of these evaluations are exhaustive. This is just documentation from what was discussed at our meetup.

Django

Monarch Digital's developer Caleb also contirbuted to the meetup by conducting a comparison of Drupal to the Python-based development framework Django. Caleb likes Python and showed how much more efficiently a developer can get things done with Django. In its own words, Django is a "web framework for perfectionists with deadlines".

  • Learning curve. You need to be a developer who knows the Python programming language in order to get much accomplished with Django.
  • Content types and fields. Like Ruby, the equivalent to a content type is a model (as in MVC or Model-View-Controller), defined in code. One nice feature is that Django ships with an "admin" package that builds an automatic interface (lists, forms, etc) for your models.
  • Permissions and access control. Django incudes built in user/group management with access control lists.
  • Community. Django has an active IRC channel (#django) and ticket system for reporting issues and recieving help. The Django community includes over 10K people in 161 countries. This type of community and discussion channels might feel familiar to some Drupal developers.

 

  • Theming. Django uses it's own templating system similar to Smarty or CheetahTemplate.
  • Contributed ecosystem. Django packages have a number of contributed package to use freely.
  • Plugin/module development. As Django is a framework, it is more about the development than the plugins.

 

  • E-commerce. There is a separate E-Commerce package for Django to help you build your store. A Python "package" provides a way of grouping related Python code for easy reuse, and will contain one or more files of Python code.
  • SEO. There are some packages available to assist with SEO. A great resouce for finding Django "packages" is djangopackages.com.

 

  • System requirements. Django supports both Python 2.7 or Python 3. Contriubted packages are slowly adding support for Python 3. In production evironments you will need a webserver like Apache or Nginx.
  • Scaling. Python is fast. Scaling is up to you, and is likely to be dependent on your knowledge of programming paradigms and various available webserver technologies.
  • Other categories. A basic tutorial is available here.

Overview

Like Ruby on Rails, you need a developer to make use of Django. However, developing a custom website could be very productive if you are already quite experienced with programming with Python.

if you found this analysis helpful, be sure to check out the other CMS comparisons in this blog series.