I am currently porting an application written in ZF to Django . In my experience, the main difference between the two structures is the connection between their internal components. ZF takes the concept of free grip to the extreme, where you need to figure out how best to combine them. On the other hand, Django provides a seamless web application development process in which each of its components is combined in a specific order. For example, when you define a model in Django ORM , it provides so much functionality for other components of the framework, such as views, templates, forms, etc., that it is difficult to imagine using them without models. In a sense, tight connectivity is one of Djangos' strengths in making web development less cumbersome and more efficient. But this sometimes makes Django less flexible.
Also, after using the db ZFs abstraction layer (which for some queries creates very invisible code), you will find that Djangos ORM has been sent heaven :) Although some ORM solutions exist for PHP (or ZF), Djangos ORM is better.
Another big difference is Djangos URL confs , which makes it extremely lightweight and flexible to provide free, user friendly (SE friendly) URLs. With Django, URLs are an integral part of the application, not some http-segment configuration you're stuck with.
Another important part of the comparison is the documentation. Djangos documentation is very well written and maintained. That's it, although the ZFs documentation is pretty good, it was very difficult for me to find something.
I think you made a good decision to try Django. Hope this will be the right solution for you.
source share