The Science of Web Art, Design and Development

Django - A framework to easily build complex sites

If you haven’t heard about Django, it is a Python Based framework to build complex and resource savvy sites easily and quickly. I have been studying and playing with Django in the last days and I’m simply amazed about it.

If you are a designer rather than a developer, the word python might scare you a little, since you don’t want to learn any python at all. Instead, if you are a developer, you might be skeptic to read that complex sites can be built easily.

Why is Django so scalable?

So, here is how it works. Django is not a CMS like Joomla, Wordpress, or Drupal. Django is a framework, meaning that is not a ready made tool to put a site online out of the box. Instead is a development platform where you can develop your CMS, Blog platform or a custom made site.

Now, what I’ve seen as major advantages in Django are

A high degree of reusability through pluggable components.
As a developer, this is a way to easy reuse resources developed once in other projects, but ultimately means you can reuse components made by other people, being people on your team, software you can download on the web or developed for you by a hired developer.
O high degree of separation between the functional and the presentation layer
Technically Django itself is a library to be added to Python, but a project in Python is composed of two things, application and views and they are strongly de-coupled, meaning that different people can work on these layers and interaction can be kept to a minimum. Means also that, as a designer, you can build great sites without having to learn a lot of python

Installing and maintaining Django

As Jeff Croft says, Django Documentation is aimed to non-programmers and the installation process of Python libraries might not be trivial for everyone, but if you already have Python running on your computer, building a development environment on your computer following the installation instructions is pretty much straightforward.

What might not be that easy, is to set up your host to have a prodution environment. For instance, if you use Dreamhost, you can follow instructions on their wiki to set it up, but they don’t actively support Django, so if you don’t manage to install it or if something breaks you are pretty much on your own.

The good news is that there are servers that support it, so in theory, you only have to install the applications you want or develop your own and build sites of arbitrary complexity.

By now, I’m still playing on my development environment on my iMac, but I’m inclined to sign up with Web Faction for real-life Django projects, their price is compatible with the most used web hosts and I heard many good things about them.

How different applications relate on a project?

In dajngo, a web project basically consists on configuring the applications you want to use, related with the templates for the site and the URLs to access them. Applications may reside wherever you want just as templates, meaning that if you have a Poll application (you can actually build one following four simple tutorials included in the documentation), for instance, you can only import the functionality, and attach it to your site templates without much further customization.

If you are used to plugin enabled systems like Wordpress, you are certainly having a familiar feeling about this. The advantage is that being Django a framework, not an application, different applications are much more independent of each other than plugins from wordpress, or any platform you might have in mind and allow you to create completely different and complex applications that can be coupled on a per-project basis.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists
  • Technorati
  • BlogMemes
  • Ma.gnolia
  • YahooMyWeb
  • Netscape
  • Slashdot
  • StumbleUpon

Related Posts

Trackback URI

5 Comments

  • Sounds interesting. I’m not crazy about the fact that lots of hosts might not support it, but if it’s good enough, that can be a minor deterrent.

    Sunday, 30 December 2007, 12:08
  • @DazzlinDonna - Hi Donna, good point. The fact that is not as supported as, say, PHP is certainly a drawback, and might not be a minor one, since less people using is less community support and therefore, less collective development and then, less applications to use.

    Compare it with wordpress, for instance, where would WP be without all the community support and collective development?

    Yet, from a technical point of view, I find Django is a very promising environment, seems to allow a for a very fast growth of your own library of code for future projects if you are a developer and a fast growing community.

    I think is definitely worth giving it a look.

    Sunday, 30 December 2007, 12:51
  • Damien Oh says:

    I have checked out Django on your recommendation. it does seem promising, but also daunting. Python is not a language that is as widely used as PHP, so I believe that the adoption rate at this moment is rather low. The community will have to do a great deal of work to promote it, else it will be just another great software that is buried under the thousands of software that are released everyday. As for me, adopting this software will require me to pick up python, which I can’t afford the time to do it now. I will follow the development of Django closely and possibly in the near future, I can have the chance to try it.

    Happy New Year!

    Sunday, 30 December 2007, 17:54
  • I am continually amazed by the amount and quality of free software out there.

    Sunday, 30 December 2007, 23:14
  • @Damien Oh -

    You are right, success of this platform could not be what it deserves and in fact, PHP offers a series of advantages over it in what regards the community.

    As a designer, I am much more interested in the high end and I’m not willing to become a Python guru, so initially I would agree with you entirely, but if you can handle hosting, and create a good toolset of Django Apps, you’d end up developing very little python code.

    @Aaron Stroud -

    I am continually amazed by the amount and quality of free software out there.

    So do I, Aaron, truly amazing.

    Tuesday, 1 January 2008, 3:28

Trackbacks

Share your thoughts

(Comments are dofollow, but also moderated. Don't forget to check the box stating that you are human before you submit your comment.)

Reply New