Как запустить Fastapi так, чтобы одновременно с ним запустилась админка Django? Как все это сделать через один скрипт?
У меня проект на Fastapi, а админку сделали на Django. Понимаю, что это не очень популярная тема, но вот такая задача встала передо мной. Я не понимаю, как сделать одновременный запуск. Сейчас я их запускаю отдельно на разных портах.
Совсем не знаю, как подступиться к этой задаче. Были идеи на счет docker-compose, но опять же они там запускаются по отдельности.
Ответы (2 шт):
Запустить два сервера на одном порте не получится, да и зачем это нужно.
Нужно отдельно запустить сервер 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;
}
}
Для запуска вместе нужно одно положить в другое. Сделать это можно через wsgi. https://fastapi.tiangolo.com/advanced/wsgi/
Джанга кладется в wsgi мидлваре, которое запускается на фастапи.