2006-08-12

Django is cool!

While I was playing with Roundup to try to fix its templates that I broke, I decided to see what it would take to follow through with my initial idea and write my own online todo app. Having been planning to use Django, I downloaded it and tried to come up with a model schema and the admin interface up by following the tutorial on their site.

Wow, that was simple! I knew it would be, but actually getting a todo list up and going through the admin interface (which is extremely slick) was still impressive. The only issue I had was that the DateField model cannot be left blank, so I just get it a default value of 2999-01-01 (for some reason the year 3000 didn't work and made Django still think that the field was required). Now I have the Django server running with me using the admin interface to manage my todo list!

I have been dreaming of ways to do a flexible web application stack for years, ever since I designed my father's web site. Now I don't have to since Django provides everything I need to let me do some really nice stuff where I can design the site but let my dad input the data for the pages.

This has been such a positive experience I think I might just go ahead and take on the challenge of doing my own web app that is tailored to exactly what I what from a todo list. But for now Django's admin interface provides pretty much exactly what I need for my todo list; configurable columns, sorting, and easy adding and deleting.

This is not meant to suggest that Roundup is not a good app. It just takes more than two small class definitions to get up and running for what I want. If this had to work with more than just a single person then Roundup would be a better solution. But since I am only one using my todo list I don't have to worry about much. =)

I think the next step in all of this is to get DNS set up for my domain. With that done I need to start setting things up so that subdomains work. Looks like I should consider FastCGI or lighttpd instead of mod_python to keep the RAM usage down. Have no clue which one to use (any suggestions would be appreciated; ease of use trumps efficiency). This should allow me to run my todo app along with my web site through a single Django project with a couple of apps for the various parts of my personal site and my todo list. Then all I need is serving of static files and possibly external access to whatever VCS I go with (going to evaluate Bazaar-NG and Mercurial soon and make a decision on them; I will post my findings when I have some). So the overall server setup should be as simple as Apache forwarding to either a FastCGI or lighttpd server of Django based on subdomain or serving up whatever is needed for the VCS or static files.