Насколько часто нужно следить за сообщениями с сервера? Если раз в пару секунд, я бы просто посылал запросы, как у вас сейчас. Если нужно держать открытый канал и постоянно получать изменения, используйте websocket
Непонятно зачем этот микс. Ангуляр может отдавать нгинкс статикой, зачем на статику поднимать целый питон на каждого юзера? А на джанго запилите www.django-rest-framework.org
1) Если есть контроллер в роутах, его не нужно указывать здесь <body ng-controller="mainCtrl">
2) Повторите урок слово в слово и по шагам, а потом пишите свое приложение