Straight off the Django website:
Is Django a content-management-system (CMS)?
No, Django is not a CMS, or any sort of “turnkey product” in and of itself. It’s a Web framework; it’s a programming tool that lets you build Web sites.
For example, it doesn’t make much sense to compare Django to something like Drupal, because Django is something you use to create things like Drupal.
Of course, Django’s automatic admin site is fantastic and timesaving – but the admin site is one module of Django the framework. Furthermore, although Django has special conveniences for building “CMS-y” apps, that doesn’t mean it’s not just as appropriate for building “non-CMS-y” apps (whatever that means!).
Using toy construction kit analogy-
CMS: Comparable to a doll house kit. You can customize it quite a bit, but it’s well suited for building mainly one kind of toy.
Web Application Framework: Comparable to a Lego set. you can build various kind of toy structures rapidly as you don’t need to make the left bricks yourself.
no Framework: Developing web apps only with a programming language’s standard library is like making toys out of plain clay. It offers most freedom, but you also pay the price of making all the pieces yourself.
- Does Django have a way to open a HTTP long poll connection?
- How to test (using unittest) the HTML output of a Django view?
Django (and web frameworks) provide common functionality needed to build most common websites. This functionality is mostly technical and a novice user (read: non programmer) has little knowledge on how to utilize it.
Where as Joomla (and CMSes in general) are packages aimed at non programmers (but still technical users, somewhat at least) to deploy and run websites using them.
If you install Joomla, you can add content to your website
If you install Django, you can start programming something that will allow you to add content
Web frameworks are programmer tools that help build content managers and similar web applications.
Just as content managers can be categorized from simple & easy (WordPress? and Joomla?) to highly customizable & complex (Typo3?), frameworks can be best for certain tasks (and not so graceful at others). Some web frameworks (Rails?, Django? and TurboGears?) are more geared towards CMS-like applications, some others (Werkzeug? and Twisted?) try to provide foundation for more complex applications. And there are others (Pylons?) trying to find the middleground.
NOTE: Project names in parenthesis all have a question mark because the categorization is my personal opinion. They may or may not be correct examples.
- Remove padding from matplotlib plotting
- Django @csrf_exempt not working in class View
- Find_element_by_class_name for multiple classes
- Printing Django QuerySet SQL with ""