A Django project is a collection of apps. Create your first app, register it, and learn the settings you actually touch — DEBUG, ALLOWED_HOSTS, INSTALLED_APPS, and time zone.
Note: a project is the whole website (one settings file, one database). An app is a self-contained feature inside it — a blog, a shop, a comments system. Apps are meant to be reusable, so you keep each feature in its own app rather than one giant pile of code.
Create an app called "blog":
python manage.py startapp blogWhere: models.py defines your database tables, views.py the logic that answers requests, admin.py registers models with the admin site, and migrations/ stores the change history of your database schema. You add urls.py and a templates/ folder yourself as you need them.
blog/
├── __init__.py
├── admin.py # register models with the admin site
├── apps.py # app configuration
├── models.py # database tables
├── views.py # request → response logic
├── tests.py # automated tests
└── migrations/ # database schema historyWhy: Django only sees apps listed in INSTALLED_APPS — without this line your models, templates, and admin registrations are invisible. Where: config/settings.py. Use the app config path "blog.apps.BlogConfig" (or just "blog").
# config/settings.py
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"blog.apps.BlogConfig", # 👈 your app
]Why: DEBUG shows detailed error pages while developing but must be False in production (it leaks source and settings). When DEBUG is False you must list your domains in ALLOWED_HOSTS or Django refuses the request. SECRET_KEY signs cookies and tokens — keep it out of source control in production.
# config/settings.py
DEBUG = True
ALLOWED_HOSTS = [] # e.g. ["myblog.com"] in production
TIME_ZONE = "UTC" # used for stored timestamps
LANGUAGE_CODE = "en-us"
USE_TZ = True # store datetimes as timezone-aware UTC
# Where collectstatic gathers files for production (Static Files lesson)
STATIC_URL = "static/"