Maison > base de données > tutoriel mysql > Comment puis-je compter efficacement les enregistrements de base de données à l'aide de requêtes SQL brutes dans les vues Django ?

Comment puis-je compter efficacement les enregistrements de base de données à l'aide de requêtes SQL brutes dans les vues Django ?

Barbara Streisand
Libérer: 2024-12-18 15:39:11
original
523 Les gens l'ont consulté

How Can I Efficiently Count Database Records Using Raw SQL Queries in Django Views?

Exécution de requêtes SQL brutes dans les vues Django

Dans Django, des requêtes SQL brutes peuvent être effectuées dans les vues pour récupérer ou manipuler des données qui peuvent ne pas être facilement accessibles via l'ORM de Django (Mappage objet-relationnel). Considérez le code suivant dans views.py :

from app.models import Picture

def results(request):
    all = Picture.objects.all()
    yes = Picture.objects.filter(vote='yes').count()
Copier après la connexion

Ce code vise à compter le nombre d'objets Picture avec un vote « oui ». Pour y parvenir à l'aide d'une requête SQL brute, on peut procéder comme suit :

from django.db import connection

def results(request):
    with connection.cursor() as cursor:
        cursor.execute("SELECT COUNT(*) FROM app_picture WHERE vote = 'yes'")
        row = cursor.fetchone()
        yes = row[0]  # Extract the count from the first row

    all = Picture.objects.all()
    return render_to_response(
        "results.html",
        {"picture": picture, "all": all, "yes": yes},
        context_instance=RequestContext(request),
    )
Copier après la connexion

Ce code ouvre une connexion à la base de données, crée un curseur pour exécuter des requêtes, exécute une requête SQL brute avec la clause WHERE pour filtre les votes comme « oui » et extrait le décompte de la première ligne du résultat. Il exécute ensuite une requête Django ORM standard pour récupérer tous les objets Picture et restitue enfin le modèle "results.html" avec les données obtenues.

L'utilisation de requêtes SQL brutes peut offrir plus de flexibilité et de contrôle sur le SQL sous-jacent exécuté, mais il est essentiel de prendre en compte les implications en matière de sécurité et de garantir une validation appropriée des entrées pour éviter d'éventuelles attaques par injection SQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal