Как запустить код python в фоновом режиме, не влияя на рендеринг шаблона html? - PullRequest
2 голосов
/ 16 июня 2020

Концепция, которой я хочу достичь:

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

Что у меня есть:

Приложение Python - Django с включенным распознаванием речи со следующими двумя файлами.

  • Speechrecognition.py (здесь logi c, относящийся к распознаванию речи)
  • index. html

Примечание. Speechrecognition.py продолжает oop многократно прослушивать ввод пользователя.

Что я пробовал:

Я пытался позвонить Speechrecognition.py перед индексом рендеринга. html в views.py

from SpeechRegApp.speechrecognition import SpeechRecognition

def index(request):  
    SpeechRecognition() 
    return render(request, "index.html", {})

Проблема, с которой я сталкиваюсь:

Поскольку я постоянно слушаю ввод пользователя в Speechrecognition.py , index. html не отображается.

Как исправить эту проблему?

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Это имеет смысл, так как ваш код находится в ловушке этого l oop. В python есть модуль под названием «threading»! Я не уверен, но, возможно, этот модуль поможет вам перевести SpeechRecognition () в фоновый режим, пока остальная часть вашего кода продолжается.

0 голосов
/ 16 июня 2020

Если перейти по этой ссылке . Он покажет вам, как настроить фоновую задачу с помощью Django, Celery и Redis.

Это позволит запускать ваш SpeechRecognition() параллельно с существующим кодом.

Пример:

views.py

from SpeechRegApp.speechrecognition import SpeechRecognition

def index(request):  
    speech_recognition_task.delay()
    return render(request, "index.html", {})

celery.py

@celery.task
def file_transfer():
    SpeechRecognition()

Надеюсь, это поможет.

...