📖 Scenario: You want to start a new website project using Django, a popular web framework in Python. This project will guide you through creating the basic Django project setup step-by-step.
🎯 Goal: Build a new Django project named mywebsite with the default settings and a basic app called main.
📋 What You'll Learn
Create a new Django project named mywebsite
Create a new Django app named main inside the project
Add the main app to the project’s INSTALLED_APPS list
Create a simple view in main/views.py that returns a plain text response
Configure the project’s urls.py to route the home page to the main app’s view
💡 Why This Matters
🌍 Real World
Starting a Django project is the first step to building websites and web apps with Python. This setup is the foundation for adding pages, data, and user features.
💼 Career
Many web developer jobs require knowledge of Django project structure, app creation, and URL routing to build maintainable web applications.
Progress0 / 4 steps
1
Create the Django project
Run the command django-admin startproject mywebsite in your terminal to create a new Django project folder named mywebsite.
Django
Hint
Open your terminal or command prompt and type exactly django-admin startproject mywebsite then press Enter.
2
Create the Django app
Inside the mywebsite folder, run the command python manage.py startapp main to create a new app called main.
Django
Hint
Change directory into mywebsite and run python manage.py startapp main.
3
Add the app to INSTALLED_APPS
Open mywebsite/settings.py and add the string 'main' to the INSTALLED_APPS list.
Django
Hint
Find the INSTALLED_APPS list in settings.py and add 'main' as a new item.
4
Create a view and route the home page
In main/views.py, create a function home that returns HttpResponse("Hello, Django!"). Then, in mywebsite/urls.py, import home and add a URL pattern for the root path '' to call home.
Django
Hint
Define the home function in main/views.py and return a simple HttpResponse. Then update urls.py to route the root URL to this view.
Practice
(1/5)
1. What is the correct command to create a new Django project named mywebsite?
easy
A. django-admin startproject mywebsite
B. django startproject mywebsite
C. django-admin createproject mywebsite
D. django-admin newproject mywebsite
Solution
Step 1: Understand the Django project creation command
The official command to create a new Django project is django-admin startproject projectname.
Step 2: Match the command with the project name
Replacing projectname with mywebsite gives django-admin startproject mywebsite.
Hint: Use 'django-admin startproject' plus your project name [OK]
Common Mistakes:
Using 'django startproject' instead of 'django-admin startproject'
Using 'createproject' or 'newproject' which are invalid commands
Forgetting to specify the project name
2. Which of the following commands has the correct syntax to create a Django project called blog?
easy
A. django-admin startproject blog
B. django-admin start project blog
C. django-admin startprojectblog
D. django-admin create project blog
Solution
Step 1: Check the command syntax
The correct syntax is django-admin startproject projectname without spaces inside the command words.
Step 2: Identify the correct option
django-admin startproject blog matches the correct syntax exactly: django-admin startproject blog.
Final Answer:
django-admin startproject blog -> Option A
Quick Check:
Correct syntax = django-admin startproject blog [OK]
Hint: No spaces inside 'startproject', write as one word [OK]
Common Mistakes:
Adding spaces inside 'startproject' command
Combining command and project name without space
Using 'create' instead of 'startproject'
3. After running django-admin startproject testsite, which folder structure will be created?
medium
A. A folder named testsite with only one file settings.py
B. A folder named testsite containing only manage.py file
C. A folder named testsite containing manage.py and urls.py only
D. A folder named testsite containing manage.py and a subfolder testsite with settings files
Solution
Step 1: Recall Django project folder structure
Running django-admin startproject testsite creates a folder testsite with manage.py and a subfolder testsite containing settings.py, urls.py, asgi.py, and wsgi.py.
Step 2: Match the correct folder structure
A folder named testsite containing manage.py and a subfolder testsite with settings files correctly describes this structure with manage.py and a subfolder testsite holding settings files.
Final Answer:
Folder with manage.py and subfolder testsite with settings files -> Option D
Quick Check:
Default Django project structure = A folder named testsite containing manage.py and a subfolder testsite with settings files [OK]
Hint: Remember: project folder has manage.py plus inner folder with settings [OK]
Common Mistakes:
Expecting all files in one folder without subfolder
Thinking only manage.py is created
Confusing project folder and app folder structure
4. You ran django-admin startproject mysite but got an error: django-admin: command not found. What is the likely cause?
medium
A. You need to run the command inside an existing Django project folder
B. You typed the project name incorrectly
C. Django is not installed or not in your system PATH
D. The command should be django startproject mysite
Solution
Step 1: Understand the error message
The error django-admin: command not found means the system cannot find the django-admin command.
Step 2: Identify the cause
This usually happens if Django is not installed or the Python scripts folder is not in your system PATH environment variable.
Final Answer:
Django is not installed or not in your system PATH -> Option C
Quick Check:
Command not found = Django missing or PATH issue [OK]
Hint: Check Django installation and PATH if 'command not found' error appears [OK]
Common Mistakes:
Assuming project name typo causes command not found
Trying to run command inside project folder before creating it
Using wrong command syntax instead of fixing PATH
5. You want to create a Django project named shop inside a folder websites that already exists. Which is the correct way to do this?
hard
A. Run django-admin startproject websites/shop from any folder
B. Navigate to the websites folder in terminal, then run django-admin startproject shop
C. Create the shop folder manually inside websites then run django-admin startproject shop
D. Run django-admin startproject shop websites from the parent folder
Solution
Step 1: Understand how startproject creates folders
The startproject command creates a new folder with the project name in the current directory.
Step 2: Choose the correct folder navigation
To create shop inside websites, first go into websites folder, then run django-admin startproject shop.
Final Answer:
Navigate to websites folder, then run django-admin startproject shop -> Option B
Quick Check:
Run command inside target folder to create project there [OK]
Hint: Change directory to target folder before running startproject [OK]
Common Mistakes:
Trying to specify nested folder in startproject command
Creating folders manually before running startproject
Passing folder name as second argument to startproject
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.