Можно ли использовать несколько бэкенд-фреймворков с одной базой данных на виртуальной машине?
Мне интересно, могу ли я использовать несколько бэкенд-фреймворков, используя только 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/