Как запустить Fastapi так, чтобы одновременно с ним запустилась админка Django? Как все это сделать через один скрипт?

У меня проект на Fastapi, а админку сделали на Django. Понимаю, что это не очень популярная тема, но вот такая задача встала передо мной. Я не понимаю, как сделать одновременный запуск. Сейчас я их запускаю отдельно на разных портах.

Совсем не знаю, как подступиться к этой задаче. Были идеи на счет docker-compose, но опять же они там запускаются по отдельности.


Ответы (2 шт):

Автор решения: sxmrxk

Запустить два сервера на одном порте не получится, да и зачем это нужно.

Нужно отдельно запустить сервер FastAPI и отдельно запустить Django. И админка Django вполне себе будет выполнять свою работу.

Если нужно чтобы сайт открывался по http://localhost:8000/, а админка была доступна по адресу http://localhost:8000/admin, а не http://localhost:8001/admin.

То можно создать прокси-сервер например на nginx. Он будет распределять запросы между этими серверами.

Пример файла nginx:

server {
    listen 8000;

    location / {
        proxy_pass http://127.0.0.1:8000;
    }

    location /admin {
        proxy_pass http://127.0.0.1:8001;
    }
}
→ Ссылка
Автор решения: eri

Для запуска вместе нужно одно положить в другое. Сделать это можно через wsgi. https://fastapi.tiangolo.com/advanced/wsgi/

Джанга кладется в wsgi мидлваре, которое запускается на фастапи.

→ Ссылка