Is Django development server single-threaded?

There’s something wrong with your testing methodology.

Using the view:

def seven_seconds(request):
    print("Entering seven second delay")
    sleep(7)
    print("Leaving seven second delay")
    return HttpResponse("You waited seven seconds\n")

And this bash command:

for x in 1 2 3; do time curl http://localhost:8000/b/t1 & done; echo Starting

I get this output from the console:

You waited seven seconds

real    0m8.025s
user    0m0.010s
sys     0m0.000s
You waited seven seconds
You waited seven seconds

real    0m8.049s
user    0m0.001s
sys     0m0.011s

real    0m8.048s
user    0m0.011s
sys     0m0.000s

And this output from runserver:

(d39) tskww@Ubuntu2004:~/git/dt$ ./manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
December 05, 2022 - 18:16:09
Django version 3.2.9, using settings 'dt.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Entering seven second delay
Entering seven second delay
Entering seven second delay
Leaving seven second delay
Leaving seven second delay
Leaving seven second delay

If this thread is in any way related to your other thread regarding selenium, see the thread here at: Are calls to the SAME view synchronous?