I have seen other questions on stackoverflow (When to create a new app (with startapp) in Django?) and read some slides on the topic but still am a little confused on when to create a new app in a Django project? I am coming over from a MEAN stack and I am new to Django.
If I want to create a web application with the following four main features:
-Register
-Login
-Chat with other users
-Upload files
Will these be 4 separate apps with their own views.py, urls.py, etc.? Or do I create 1 app and they share app files?
It seems that 'apps' in Django projects are described as reusable modules, but these features would only be used once in my whole web application so they would not be reusable?
If I wanted to build two completely separate websites, do I create 2 separate Django projects or 1 project with separate apps inside of it and would reuse an app such as registration?
Just trying to wrap my ahead around how to structure this.
Below is from Django's poll tutorial:
Projects vs. apps
What’s the difference between a project and an app? An app is a Web application that does something – e.g., a Weblog system, a database of public records or a simple poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects.
The part I bolded confuses me very much on how to structure and when to separate apps.
Any help is appreciated.