One thing to note (and this may be a contentious statement) is that a modern Django app should be created using class-based generic views, rather than the simple function-based views that are demonstrated in all the Django beginner tutorials and documentation linked in this article.<p>I've found that class-based views help to improve the organization and structure of my applications significantly, so that for larger apps I don't necessarily have to segment each view into a separate file in order to maintain that organization. The primary drawback of class-based views, at least for a beginner, is that the documentation is terse, incomplete, and difficult to understand without a thorough foreknowledge of the underlying architecture. I've had better luck finding solutions by digging through the Django source code itself.