Hi
in a few words, generally you will use frameworks such GeoDjango and
MapFish when you need to write CRUD web application, using a REST
paradigm.
MapServer, GeoServer and at a certain extent Mapnik are map server
engines that will let you implement web services respecting the OGC
standards (WFS/WMS/WCS and so on).
You can combine the two approaches, mainly in a situation where you
want to display your data in a more efficient way rather than GeoJSON
and other vectorial formats, that could be "heavy" to be deployed to
the browser's client. Or when you have to display other datasets that
are not the core of your Django web app or you want your datasets to
be accessed in a standard way by other web or desktop applications.
regards
--
Paolo Corti
Geospatial software developer
web:
http://www.paolocorti.net
twitter: @capooti
skype: capooti