Можно ли использовать несколько бэкенд-фреймворков с одной базой данных на виртуальной машине?

Мне интересно, могу ли я использовать несколько бэкенд-фреймворков, используя только 1 базу данных в экземпляре VM в продакшене без каких-либо проблем. Например, я хочу сохранить Django Admin и его сервисы аутентификации rest API, а FastAPI использовать для других вещей, возможно даже ExpressJs в будущем.

Я хочу добиться этого, потому что разные фреймворки имеют разные сильные стороны и доступные сторонние библиотеки в своих экосистемах.

Я знаю, что NGINX как обратный прокси и балансировщик нагрузки будет контролировать нагрузку и направления трафика к различным конечным точкам. Тем не менее, будут ли какие-либо конфликты в базе данных или что-то, чего я должен остерегаться?

Спасибо!

Вы можете создать выделенный путь и монтировать его в app init. Это работает с flask, поэтому я полагаю, что django тоже должно работать

Вот пример, взятый из документации

from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
from flask import Flask, escape, request

flask_app = Flask(__name__)


@flask_app.route("/")
def flask_main():
    name = request.args.get("name", "World")
    return f"Hello, {escape(name)} from Flask!"


app = FastAPI()


@app.get("/v2")
def read_main():
    return {"message": "Hello World"}


app.mount("/v1", WSGIMiddleware(flask_app))

См. документацию на https://fastapi.tiangolo.com/advanced/wsgi/

Вернуться на верх