папочка views и на каждый контрллёр свой файл, так делаю. Вообщем как nobodynoone написал. Только для простых контроллёров (contact, about) можно слелать default.py
У каждого приложения свои решения, и скорей всего не подойдёт вашему, вот приложение которое отправляет смс - django-twilio.readthedocs.org/en/latest/, остальное сами придумайте.
если данные не должны быть доступны для незарегистрированных пользователей, то нужно добавить декоратор, но только не для каждой функции а для модуля, в котором эти функции или закрыть весь роут для незалогиненного пользователя.
Для больших нагрузок используйте redis, туда сохранайте результаты голосования и айди модели, потом раз в час например синхронизируйте данные в базу с помощью celery, в любом случае не делайте update в базу на счётчиках и голосованиях.