Сейчас похожий проект:
бэк - django-rest-framework,
фронт - vue spa, используется vue-cli и webpack шаблон.
django стартует сервер на своем порту, vue использует dev сервер из шаблона. Взаимодействие через rest. Т.е. по сути описанный вами 2ой вариант. В папке проекта две папки: backend и frontend.
Еще делали такую штуку(правда не пользуемся ей для разработки): стартует django сервер, в нем настроены пути, так что если это не обращение к api сервера или к админке, то он отдает статику из папки frontend/dist, т.е. продакшн версию фронта.