What is a main reason that Django webserver is blocking?
If you really need another reason on top of that suggested by dm03514, it I'd probably simply because it was easier to write. Since the dev server I'd for development only, little effort was spent in making it more complex or able to serve multiple requests. In fact, this is an explicit goal: making it any better would encourage people to use it in a production setting, for which it is not tested.
Why is the Django webserver blocking, not non-blocking like Tornado? Was there a reason to design the webserver in this way?