Задать вопрос
@OneMoreUsername

Не могу понять асинхронность в Django, что и где читать?

Всех приветствую! Изучил питон, как первый язык, и Django, как первый фреймворк. Изучив основы по книге Дронова, получилось сделать несколько проектов, однако в данный момент я захотел сделать чат, для чего нужна асинхронность. Однако, после прочтения немалого количество статей, как на русскоязычных, так и на англоязычных просторах интернета, где либо даются самые верха, либо удаляются в дебри. Какие хорошие статьи и/или видеоролики для понятия асинхронности вы можете посоветовать?

Попробовал написать свой код с максимально простым чатом, не могли бы вы уточнить, что здесь неправильно?

@sync_to_async
def testchat(request):
    get_message = sync_to_async(Message.objects.all())
    message = get_message()
    if request.method == 'POST':
        msf = MessageForm(request.POST)
        if msf.is_valid():
            msf.save()
            return HttpResponseRedirect(reverse('main:testchat', args=()))
        else:
            context = {'form' : msf, 'message' : message}
            return render(request, 'main/testchat.html', context)
    else:
        msf = MessageForm(request.POST)
        context = {'form' : msf, 'message' : message}
        return render(request, 'main/testchat.html', context)
    
  #Сделал два варианта гов... кхм, кода.
    
async def testchat(request):
    message = await sync_to_async(Message.objects.all(), thread_sensitive=True)
    if request.method == 'POST':
        msf =  await sync_to_async(MessageForm(request.POST), thread_sensitive=True)
        
        if msf.is_valid():
            msf.save()
            return HttpResponseRedirect(reverse('main:testchat', args=()))
        else:
            context = {'form' : msf}
            return render(request, 'main/testchat.html', context)
    else:
        msf =  await sync_to_async(MessageForm(request.POST), thread_sensitive=True)
        context = {'form' : msf}
  • Вопрос задан
  • 189 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
@dooMoob
Смысла писать на джанге асинхронный код до того моментка, как они подвезут асинхронную ОРМ, 0 целых 0 десятых.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Могу посоветовать документацию по asyncio для начала, а потом документацию по Django.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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