Единственный способ, которым я знаю, для достижения этой цели - запустить функцию в другом потоке. Вы говорите, что пробовали это, но не имели успеха, но не приводили пример того, что вы пробовали. Ниже приведен пример кода, который должен работать
import threading
...
def new_user(request):
'''Takes a request and enters it in the database IF that wallet id is not in the database! '''
data = request.body
if data != '':
user_info = eval(data)
if type(user_info) != type({}):
... more code here ...
task = threading.Thread(target=send_email, args=(vCode,))
task.daemon = True
task.start()
return HttpResponse(response)
Примечание: вам нужно пометить этот поток как daemon
, чтобы python не ждал, пока он не присоединится, прежде чем закрыться. Поскольку вы запускаете это после запуска кода, это необходимый шаг.
Другой вариант - использовать какую-то очередь задач и отправить ее на обработку, что, как вы говорите, вы пытаетесь сделать также с asyncio
. В большем приложении это было бы лучшим вариантом.