Запуск пирамиды и 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 также работают. Мне интересно, есть ли какие-нибудь проблемы, о которых я должен знать, если я пойду этим путем.