---
# System prepended metadata

title: PID-1083

---

The `runserver` command in Django is used to start the development server. This server is a lightweight web server provided by Django that allows you to run and test your Django web application locally during the development phase [1][2][3]. Here's what the runserver command does:
1. Starts the Development Server: When you run python `manage.py runserver` from the command line within your Django project's directory, Django starts a development server on your local machine.
2. Listens for Incoming HTTP Requests: The development server listens on a specified port (usually 8000 by default) for incoming HTTP requests from web browsers or other clients.
3. Routes Requests to Django Views: When an HTTP request is received, the development server routes the request to the appropriate Django view function based on the URL pattern defined in your Django project's URLs configuration.
4. Enables Automatic Code Reloading: One of the key features of runserver is automatic code reloading. As you make changes to your Django application's code, such as modifying views, models, or templates, the server detects these changes and automatically reloads the affected components. This eliminates the need for manually restarting the server after code changes, making the development process smoother.
5. Provides Detailed Error Messages: If an error occurs during the processing of an HTTP request, the development server provides detailed error messages, including traceback information, in the console. This helps developers quickly identify and fix issues during development.
6. Logs HTTP Requests: The server logs each incoming HTTP request to the console, showing the requested URL, HTTP method (GET, POST, etc.), response status codes, and more. This logging is helpful for monitoring and debugging the behavior of your application.
7. Supports SSL: Starting with Django 3.0, the runserver command also supports SSL/TLS encryption, allowing you to develop and test secure HTTPS connections locally.
8. Customization: You can customize the runserver command by specifying options such as the host, port, verbosity level, and whether to use SSL.
9. Single-Threaded: It is important to note that the development server is single-threaded, which means it can handle one request at a time. This makes it unsuitable for high-traffic production environments, but it is perfect for local development and testing.

To run the `runserver` command, navigate to the project directory that holds your Django project in your command-line interface and run the following command [2][3][5]:
```python
python manage.py runserver
```
* The command python `manage.py runserver` holds a pivotal role in Django development. 
* When executed in the command line within your Django project directory, it triggers the initiation of the Django development server. 
* This server actively listens for incoming HTTP requests and serves your Django web application. By default, it operates on `127.0.0.1` (localhost) and `port 8000`. 
* It serves as a valuable tool for local testing and interaction with your application throughout the development phase. Notably, it incorporates automatic code reloading, simplifying the process of observing real-time effects of code modifications. However, it's imperative to note that this server is specifically designed for development and testing purposes and is unsuitable for production use due to its limitations.
* It is important to keep in mind that while the server is running, the same terminal cannot be used to execute other commands. To simultaneously run other commands alongside the server, it is advisable to open a new terminal window. Furthermore, the development server automatically reloads Python code as required for each incoming request, ensuring seamless development workflow [1][3].