Why don't Django and CherryPy support HTTP verb-based dispatch natively?
It's not the same to POST to an URL than to GET it, DELETE it or PUT it. These actions are fundamentally different. However, Django seems to ignore them in its dispatch mechanism. Basically, one is forced to either ignore HTTP verbs completely or do this on every view: def my_view(request, arg1, arg2): if request.method == 'GET': return get_view(request, arg1, arg2) if request.method == 'POST': return post_view(request, arg1, arg2) return http.HttpResponseNotAllowed(['GET', 'POST']) The few solutions I have found for this in the web ( this snippet for verb-based dispatch, or this decorator for