It’s been a while since I stopped working as web-developer/factotum.
At the time I used to use the Grails web framework. Grails is just fantastic. It’s a full-stack framework providing everything a web developer could need. It’s coherent among its components, it’s very well designed and it’s just a pleasure to use.
The main drawback is that it’s heavy as hell.
Nowdays I’m mostly interested in web frameworks I can use on my own home server (or on my raspberry pi).
I started looking for something else. I’ve been using the very basic web.py at the time of CS253 at Udacity and I found that Python is well suitable for web development too.
I heard of some other frameworks, mostly flask. I see it as useful to know, but just for quick&dirty web apps for temporary needs.
Instead, I decided to give Django a try. I have to admit, it wasn’t love at first sight. There are some things I don’t like in it, that doesn’t match the MVC pattern the way they should. But after taking the first three parts of the tutorial, I can say I’m convinced.
I would like to say something about the MVC thing: in the model-view-controller, models should represent and abstract data access (typically database). Views should divide data from content. Controllers should actually bring things together by handling http requests, taking/putting data from/into models and filling views with data. In Django, the job of controllers is handled by “views”. Nonsense.
Actually, it seems to me that calling the view file “views.py” is just a convention, as I could actually name it in a completely different way. Still, it’s disappointing.
Overall, byt the way, I’m convinced, and I’ll be studying Django in the future.