Можно ли в Python запустить консольную программу для каждого пользователя без ошибок?
отдельно сделал консольную программу с использованием sqlite3, а потом на пару с chatGPT сделал простейший сайт. Он состоит из 2 страничек первая это авторизация а вторая главная, на главной странице есть контейнер в котором вертикально расположены контейнеры с текстом. Есть модель Message в котором хранится этот текст разделённый на две части (потом объясню почему) каждый раз когда пользователь нажимает на клавишу сайт с помощью JS ловит это вызывает питоновскую функцию в которой к последнему созданному сообщению этим пользователем прибавляется эта буква, затем все сообщения с помощью JsonResponse отправляются на html и там строятся как раз эти контейнеры с текстом, каждый раз когда пользователь нажимает Enter то начинается новое сообщение, я бы хотел чтобы с помощью этого функционала пользователь мог работать с написанной мною консольной программой а сообщения я разделил что-бы ограничить на редактируемый и не редактируемый текст (например если в input() написать строку она будет выводится и редактироваться не будет). Главная загвоздка заключается в том что консольная программа не линейная и требует вводы на разных этапах что не оставляет выбора как запускать эту программу для каждого пользователя отдельно, я пробовал с помощью асинхронного вызова функции но тогда это ломает работу sqlite3. Если нужно ниже приложу все файлы.
Но Вам же необходимо работать в диалоговом режиме..
Если список вопросов фиксированная - лучше их спросить сразу в виде формы, а потом передавать программе..
SunTechnik, Спасибо вы натолкнули на идею, я хотел сделать так что-бы вопросы появлялись постепенно, и я подумал что можно записывать состояние пользователя, и когда получу от пользователя команду, буду вызывать функцию, которая в зависимости от состояния будет возвращать список вопросов и выводить их постепенно или уже конечный ответ, спасибо вам большое. Оказалось что утро вечера мудреней.
Насколько я понял, MTV - то что нам позволяет с моделями, портновским кодом во view и html. ты предлагаешь перенести весь основной код консольной программы в view, что не очень решит проблему, ведь пользователь отправляет всего одну строку с помощью запроса а программа у меня очень не линейная и требует много вводов на разных этапах. Например программа говорит введите команду, пользователь вводит эту команду, программа просит ввести первый параметр затем второй параметр и так далее. А просить пользователя ввести одной строчкой будет довольно непонятно для пользователя.
goga_giga, накапливай на клиента и отправляй разом, либо храни состояние на сервере, вариантов много, у тебя проблема в пониманию как работает веб, порешай тогда задачи попроще
Everything_is_bad, спасибо, что не бросаешь меня, про накапливание хороший совет, я наверное так и сделаю (если вы имели ввиду, то что нужно сначала получить всю строчку клиента а только потом отправлять информацию на view), а что насчёт хранения состояния на сервере: не очень понял как это можно реализовать, дело в том что консольная программа у меня ОГРОМНАЯ и ручками делать хранения состояния будет довольно трудоёмко. Прошу простить мой недостаток понимания темы и следующий раз прошу отвечать более развёрнута в силу моего плохого понимания django.