1. БД на сервере. Доступ к ней с сервера и с локальной машины.
2. Заводим репозиторий проекта в git.
3. Ставим virtualenv на сервер
4. Настраиваем среду на сервере
5. Работаем в PyCharm, умеет сам аплоадить все файлы по ssh.
6. Запускаем на сервере запускаю вручную (чтобы видеть лог и ошибки). Если нужно, то поверх nginx.
7. Если код неплатформозависимый, то запускаем локально: серьезно экономит время, не нужно ждать пока зааплоадятся файлы, удаленная БД дает небольшой оверхед.
8. Платформозависимый - запускать локально в виртуалке.
9. В довиртуальные времена я использовал отдельный компьютер с настроенной средой и бд, аналогичными продакшену.
10. На продакшн выкладывается из репозитория. Тут каждый придумывает свою схему деплоя.
11. virtualenv везде, причем отдельный для разработки, для тестирования, беты и продакшена.
Часто обновляется внешний пакет, добавляется на дебаг, дорабатывается код, далее внешний пакет обновляется на бете, тестируется и потом только попадает на продакшен.