1
A project is made up of apps. You can have an app to manage users (Login, registration, etc). Another one for app to manage blogs, etc.
All the functionalities should be self-contained, keeping them independant as much as possible. That way you can alter the functionality of your login without making your blog system crash. Every self contained functionality should be an app (users, polls, blogs, comments, etc).
It may be hard to keep them completely isolated, that’s the reason why you use external apps that were designed with specific purposes and can be plugged into your project easily. Don’t do by yourself what you could do with a good app unless it is absolutely necessary (licenses, extra features, etc).
You use one file for urls, another one for views and another one for models per each app. Your views.py for users can contain all the views that handle all you need, your models.py contains all the models your users require and your urls.py ties everything together. This is an example of how everything should work in an app. You don’t need 1 file per view/controller, you need 3-5 files per app but those are required to keep a modular and structured design.