async views, async ORM, WebSockets, channels, async middleware
Django 3.1+ поддерживает асинхронные view, middleware и ORM.
💡 Правило: Используйте async для I/O-bound операций, не для CPU-bound.
# views.py
async def my_view(request):
data = await fetch_external_api()
return HttpResponse(data)async def get_user(user_id):
user = await User.objects.aget(pk=user_id)
return user
async def list_posts():
posts = [post async for post in Post.objects.all().aiterator()]
return posts# consumers.py
class ChatConsumer(AsyncWebsocketConsumer):
async def connect(self):
await self.accept()
async def receive(self, text_data):
await self.send(text_data=f'Echo: {text_data}')Вопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.