python / intermediate
Snippet
Ausführen asynchroner ORM-Abfragen in Django-Views
Django unterstützt native asynchrone ORM-Methoden wie `aget()`. Dadurch können asynchrone View-Funktionen Datenbankabfragen abwarten, ohne die Ereignisschleife zu blockieren.
snippet.py
python
1
2
3
4
5
6
from django.http import JsonResponsefrom myapp.models import Articleasync def recent_articles_view(request):latest_article = await Article.objects.aget(slug="django-5-async")return JsonResponse({"title": latest_article.title, "views": latest_article.views})
django
Erklärung
1
from django.http import JsonResponse
Importiert JsonResponse zur Rückgabe von serialisierten JSON-Daten aus dem View.
2
from myapp.models import Article
Importiert die Article-Django-Modelldefinition.
3
async def recent_articles_view(request):
Definiert einen asynchronen HTTP-Request-Handler-View mit der async def-Syntax von Python.
4
latest_article = await Article.objects.aget(slug="django-5-async")
Ruft ein einzelnes Article-Exemplar asynchron mit aget() aus der Datenbank ab.
5
return JsonResponse({"title": latest_article.title, "views": latest_article.views})
Erstellt und gibt eine HTTP-JSON-Antwort mit Artikel-Metadaten zurück.