@shstkv_a

Подойдет ли backend на python?

Мне нужно разработать веб-приложение со следующей архитектурой:

1. Пользователь заходит на сайт, читает некоторую информацию и после закачивает файл определенного формата на сервер.
2. Сервер читает этот файл (проверяет на соответствие определенные строки).
2.1 Если строки нужные, то происходит выполнение некоторой операции.
2.2 Если строки не нужные – сервер отправляет уведомление клиенту о несоответствии.
2.3 В случае выполнения операции, создается несколько файлов, которые отправляются сервером клиенту.
3. Клиент получает файлы и у него есть возможность скачать текстовые файлы или просмотреть их содержимое на сайте.

В связи с этим у меня вопрос: подойдет ли для веб-приложения backend на python и какой фреймворк для подобной проблемы, что нaзывается "best in practice"? Справится ли этот backend с нагрузкой до 1000 запущенных процессов (операций работы с файлами, обрабатываемых на сервере единовременно)? Слышал про GIL, но не знаю, будут ли из-за него трудности.
  • Вопрос задан
  • 327 просмотров
Решения вопроса 3
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
какой фреймворк для подобной проблемы

Django + DRF/Ninja + Nginx.
Слышал про GIL, но не знаю, будут ли из-за него трудности.

При средних нагрузках - будут, но обходится это относительно не сложно (многопроцессорность или внешние библиотеки). При больших нагрузках Python не используют.
Справится ли этот backend с нагрузкой до 1000 запущенных процессов (операций работы с файлами, обрабатываемых на сервере единовременно)?

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

Если есть сомнения в Ваших возможностях, то Java или Go справятся с этой задачей лучше.

Но с другой стороны, Python позволит быстро написать MVP, а узкие места потом всегда можно переписать на Go.
Ответ написан
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
В этой постановке выглядит так, что подойдёт любой язык программирования и любой фреймворк.
Ответ написан
@twistfire92
Python backend developer
Если цель - только файлики проверять/собирать, я бы взял FastAPI. Причём, если процесс работы с файлами будет синхронный, то и ендпоинты создавать синхронные, библиотека сама их запуститв отдельных потоках. Связка Django + DRF будет сложна для ознакомления новичку, да и много лишнего с собой несёт, чем пользоваться вы не будете.

Опять же смотря что называть сайтом. Если это отдельное frontend приложение, где от вас требуется только API, то да. Если же и пользовательский визуал в зоне вашей ответственности, то Django. Хотя и FastAPI с шаблонами работать умеет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы