I looked through the Django built-in Auth app and noticed that views are split in many like:
password_reset,
password_reset_confirm,
password_reset_done,
password_reset_complete
Here every simple action has a distinct view. Should all the apps be written like that or is it fine for one view to manage more URLs?
The rule of thumb is that different URLs should be handled by different views.
Prior to the introduction of class-based views in Django 1.3, this could lead to a mess if your view function tried to handle many cases. But now you can create class-based views which allow you to subclass existing views and reuse behaviour of those views.
For example (for a site that has multiple games).
Methods defined in
GameViewcan be called and reused in subclasses.