Запуск пирамиды и django бок о бок

У нас есть приложение pyramid, которое предоставляет конечную точку API. Теперь мы хотим реализовать и фронтенд, но к нашему удивлению, инструментарий i10n/l10n в пирамиде не так хорош, как в django. Поэтому я подумал, что если мы реализуем фронтенд с помощью django? Итак, мне удалось запустить PoC с таким кодом:-

# in pyramid main() entry point
def main(global_config: t.Dict[str, str], **settings: str) -> Router:
    """Return a Pyramid WSGI application."""

    # Expand environment variables in .ini files
    settings = expandvars_dict(settings)
    settings["ini_path"] = global_config["__file__"]

    # Configure Pyramid
    config = Configurator(settings=settings)
    configure(config)

    # Up, Up and Away!
    from myapp.wsgi import application as django_app
    pyramid_app = config.make_wsgi_app()

    def wsgi_app(environ, start_response):
        request_url = environ["PATH_INFO"]
        if request_url.startswith("/api"):
            return pyramid_app(environ, start_response)

        return django_app(environ, start_response)

    return wsgi_app

В основном идея заключается в том, что для любого пути запроса, который начинается с /api, мы передаем его пирамиде, а все остальное будет обрабатываться django. Кажется, это хорошо работает для простых страниц, которые я тестирую, при этом все вещи i10n/l10n также работают. Мне интересно, есть ли какие-нибудь проблемы, о которых я должен знать, если я пойду этим путем.

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