If you follow the Django Tutorial here you'll run theses commands:
django-admin startproject mysite
# Change into the outer mysite directory
cd mysite
python manage.py startapp polls
and you'll get this folder structure
mysite/
├── manage.py
│
├── mysite/
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
│
└── pools/
├── migrations/
│ └── __init__.py
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py
But if you follow Django REST Framework here and you'll run these commands:
Note: I replaced the directory names to match, for better comparison
# Create the project directory
mkdir mysite
cd mysite
# Set up a new project with a single application
django-admin startproject mysite . # Note the trailing '.' character
cd mysite
django-admin startapp polls
cd ..
and you'll get this folder structure
mysite/
├── manage.py
│
└── mysite/
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
├── wsgi.py
│
└── polls/
├── migrations/
│ └── __init__.py
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py
This is DFR's explanation:
It may look unusual that the application has been created within the project directory. Using the project's namespace avoids name clashes with external modules (a topic that goes outside the scope of the quickstart).
What I want to know is more about this "topic that goes outside the scope of the quickstart". I would like to read up on more of this topic and have some examples. Also why does Django Tutorial teaches something that "apparently" has problems and "apparently" you shouldn't do.