📖 Scenario: You are creating a simple Django project to understand how to start and run the development server. This server helps you see your web app in action on your local computer.
🎯 Goal: Learn how to set up a basic Django project and run the development server using the runserver command.
📋 What You'll Learn
Create a new Django project named myproject
Navigate to the project directory
Run the development server on the default port
Run the development server on port 8001
💡 Why This Matters
🌍 Real World
Django's development server lets you test your web app locally before sharing it with others or deploying it online.
💼 Career
Knowing how to start and run the Django development server is essential for web developers working with Django to build and test websites.
Progress0 / 4 steps
1
Create a new Django project
Open your terminal or command prompt and type django-admin startproject myproject to create a new Django project named myproject.
Django
Hint
This command creates a new folder called myproject with all the basic files you need.
2
Navigate to the project directory
Change your directory to the new project folder by typing cd myproject in your terminal.
Django
Hint
You need to be inside the project folder to run the server.
3
Run the development server on the default port
Start the Django development server by typing python manage.py runserver. This runs the server on port 8000 by default.
Django
Hint
After running this, open http://127.0.0.1:8000/ in your browser to see your project.
4
Run the development server on port 8001
Run the Django development server on port 8001 by typing python manage.py runserver 8001.
Django
Hint
You can specify a different port number after runserver to change where the server listens.
Practice
(1/5)
1. What does the Django runserver command do?
easy
A. Deploys your Django site to the internet permanently
B. Creates a new Django project automatically
C. Starts a simple web server to test your site during development
D. Compiles your Django code into an executable file
Solution
Step 1: Understand the purpose of runserver
The runserver command is used to start a lightweight web server on your local machine.
Step 2: Identify what runserver is NOT
It does not deploy your site permanently, create projects, or compile code; it only runs a development server.
Final Answer:
Starts a simple web server to test your site during development -> Option C
Quick Check:
runserver = starts local test server [OK]
Hint: Remember runserver means run a local test server [OK]
Common Mistakes:
Thinking runserver deploys the site permanently
Confusing runserver with project creation commands
Assuming runserver compiles code
2. Which of the following is the correct command to start the Django development server on port 8080?
easy
A. python manage.py run 8080
B. python manage.py runserver 8080
C. python manage.py startserver 8080
D. python manage.py runserver -p 8080
Solution
Step 1: Recall the correct syntax for runserver with port
The correct syntax is python manage.py runserver <port>, so python manage.py runserver 8080 is valid.
Step 2: Identify incorrect options
Options A, B, and C use wrong flags or commands that do not exist in Django.
Final Answer:
python manage.py runserver 8080 -> Option B
Quick Check:
runserver + port number = correct syntax [OK]
Hint: Use runserver followed by port number without flags [OK]
Common Mistakes:
Using -p flag which Django does not support
Typing startserver instead of runserver
Omitting manage.py or using wrong command
3. What will happen if you run python manage.py runserver 0.0.0.0:8000?
medium
A. The server will start and be accessible on all network interfaces
B. The server will start and be accessible only on localhost
C. The command will cause a syntax error
D. The server will start but only on port 80
Solution
Step 1: Understand the IP address 0.0.0.0 in runserver
Using 0.0.0.0 tells Django to listen on all network interfaces, not just localhost.
Step 2: Confirm the port number usage
The port 8000 is explicitly set, so the server listens on port 8000 on all interfaces.
Final Answer:
The server will start and be accessible on all network interfaces -> Option A
Quick Check:
0.0.0.0 means all interfaces [OK]
Hint: 0.0.0.0 means listen on all network interfaces [OK]
Common Mistakes:
Thinking 0.0.0.0 restricts to localhost
Assuming port changes to 80 automatically
Expecting syntax error from this command
4. You run python manage.py runserver 9000 but get an error saying the port is already in use. What should you do?
medium
A. Choose a different port number and run the command again
B. Restart your computer and run the same command again
C. Change the command to python manage.py runserver --force 9000
D. Uninstall Django and reinstall it
Solution
Step 1: Understand the port in use error
This error means another program is using port 9000, so Django cannot start the server there.
Step 2: Choose a different port number
To fix this, pick a free port (like 8000 or 8080) and run python manage.py runserver <new_port>.
Final Answer:
Choose a different port number and run the command again -> Option A
Quick Check:
Port in use? Pick another port [OK]
Hint: If port busy, pick another port number [OK]
Common Mistakes:
Trying non-existent --force flag
Unnecessarily reinstalling Django
Assuming restart fixes port conflicts always
5. You want to test your Django site on your phone connected to the same Wi-Fi. Which command lets you run the server so your phone can access it?
hard
A. python manage.py runserver --external 8000
B. python manage.py runserver 127.0.0.1:8000
C. python manage.py runserver localhost:8000
D. python manage.py runserver 0.0.0.0:8000
Solution
Step 1: Understand network accessibility for runserver
Using 127.0.0.1 or localhost restricts access to your computer only, so other devices cannot connect.
Step 2: Use 0.0.0.0 to allow external devices
Running python manage.py runserver 0.0.0.0:8000 makes the server listen on all interfaces, allowing your phone on the same Wi-Fi to connect.
Step 3: Identify invalid options
python manage.py runserver --external 8000 uses a non-existent flag --external, so it will cause an error.
Final Answer:
python manage.py runserver 0.0.0.0:8000 -> Option D
Quick Check:
0.0.0.0 allows external access [OK]
Hint: Use 0.0.0.0 to allow devices on your network [OK]
Common Mistakes:
Using localhost or 127.0.0.1 which blocks external devices
Trying unsupported flags like --external
Not connecting phone to same Wi-Fi network
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.