Как вызвать различные python функции в Django проекте из внешнего интерфейса? - PullRequest
0 голосов
/ 08 апреля 2020

Я работаю над веб-приложением типа чат-бота, которое мне нужно создать с помощью Django. Я разработал небольшую модель ML предсказания и построил небольшой поток для разговора. Поток диалога содержит класс и несколько функций внутри него. Модуль потока разговоров выглядит примерно так:

class Arbitrary(object):
    def A(self):
       abc = input()
       ## perform some operation ##
       if this:
          a = Arbitrary()
          return a.B(abc)
       else:
          a = Arbitrary()
          return a.C(abc)

    def B(self, abc):
       abc = input()
       ## perform some operation ##
       return 'something'
    def C(self, abc):
       abc = input()
       ## perform some operation ##
       return 'something more'

Этот фрагмент кода работает именно так, как я хочу на терминале. Теперь проблема в том, что я хочу создать веб-приложение в Django таким образом, чтобы на веб-странице было текстовое поле с кнопкой. Пользователь что-то печатает, и одним нажатием кнопки введенный текст должен быть передан в функцию A, а затем должны следовать те же вызовы функций (поток разговора), как это происходит в терминале. Проблема, с которой я здесь сталкиваюсь, это abc = input(), которая есть в каждой функции, которую я не могу получить с веб-страницы. Я могу вызвать только одну функцию, вызвав ее с помощью ввода, заданного пользователем на веб-странице.

Нужно ли использовать веб-сокеты (Django Каналы)? Или возможно с AJAX звонками себя? Я застрял на этом некоторое время и не мог прийти к какому-либо решению. Я надеюсь, что вопрос понятен всем остальным, пожалуйста, дайте мне знать, если требуются какие-либо другие детали.

Заранее спасибо!

1 Ответ

0 голосов
/ 08 апреля 2020

вы можете сделать это, используя django добавить представление и шаблон для вашей формы. В противном случае вы можете добавить конечную точку и вызвать ее, используя ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...