Maison > base de données > tutoriel mysql > Comment puis-je exécuter des requêtes SQL brutes dans les vues Django ?

Comment puis-je exécuter des requêtes SQL brutes dans les vues Django ?

Susan Sarandon
Libérer: 2024-12-22 17:26:10
original
270 Les gens l'ont consulté

How Can I Execute Raw SQL Queries in Django Views?

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

Django permet aux développeurs d'effectuer des requêtes SQL brutes directement à partir des vues. Cela peut être utile pour effectuer des opérations complexes ou récupérer des données qui ne sont pas facilement accessibles via l'ORM de Django.

Effectuer une requête SQL brute

Pour effectuer une requête SQL brute dans Django, vous pouvez utiliser le étapes suivantes :

  1. Importez l'objet de connexion depuis django.db.
  2. Créez un objet curseur en utilisant curseur = connexion.cursor().
  3. Exécutez la requête SQL en utilisant curseur.execute(query).
  4. Récupérez les résultats en utilisant row = curseur.fetchone().

Exemple

L'exemple suivant montre comment exécuter la requête SQL donnée en utilisant l'ORM de Django et un SQL brut requête :

from app.models import Picture
from django.db import connection

def results(request):
    # Using Django ORM
    all = Picture.objects.all()
    yes = Picture.objects.filter(vote='yes').count()
    
    # Using raw SQL
    cursor = connection.cursor()
    cursor.execute('''SELECT COUNT(*) FROM pictures''')
    row = cursor.fetchone()
    num_all = row[0]
    
    cursor.execute('''SELECT COUNT(*) FROM pictures WHERE vote = "yes"''')
    row = cursor.fetchone()
    num_yes = row[0]
    
    return render_to_response(
        'results.html', 
        {'picture':picture, 'num_all':num_all, 'num_yes':num_yes}, 
        context_instance=RequestContext(request)
    )
Copier après la connexion

Clause WHERE pour le filtrage

Pour filtrer les résultats à l'aide de la clause WHERE, incluez simplement la clause WHERE dans la requête SQL. Par exemple, pour filtrer le vote pour « oui » :

cursor.execute('''SELECT COUNT(*) FROM pictures WHERE vote = "yes"''')
Copier après la connexion

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