To answer the question,
-
NO, Tornado is not a replacement to Django. It’s an alternative.
-
YES, they are complementary to each other but not in the same process (*)
I would use Django when it’s a big team effort and/or needs to run on a SQL database.
I would use Tornado for everything else. Ie. personal projects, WebSocket-related apps, or apps that use a NoSQL backend.
(*) Don’t bother running Django inside Tornado or the other way around unless you really have a strong requirement for that.