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 ?

DDD
DDDoriginal
2024-12-15 09:37:13517parcourir

How Can I Execute Raw SQL Queries Within Django Views?

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

Dans Django, vous pouvez exploiter des requêtes SQL brutes dans les vues pour accéder aux informations de base de données qui ne sont pas facilement disponibles via ORM. Pour illustrer cela, considérons un exemple de code vues.py :

from app.models import Picture

def results(request):
    all = Picture.objects.all()
    yes = Picture.objects.filter(vote='yes').count()
    return render_to_response(
        'results.html',
        {'picture': picture, 'all': all, 'yes': yes},
        context_instance=RequestContext(request)
    )

Pour exécuter des requêtes SQL brutes dans cette fonction d'affichage, vous devez suivre ces étapes :

  1. Importez le module Django nécessaire :

    from django.db import connection
  2. Obtenez un curseur pour interagir avec le base de données :

    cursor = connection.cursor()
  3. Construire une requête SQL :

    sql_query = '''SELECT count(*) FROM app_picture WHERE vote = "yes"'''
  4. Exécuter la requête SQL :

    cursor.execute(sql_query)
  5. Récupérer le résultats :

    row = cursor.fetchone()
  6. Traitez les résultats :

    results = row[0]

Vous pouvez utiliser les résultats selon vos besoins dans votre logique de vue. Par exemple, vous pouvez attribuer la valeur à une variable et la transmettre au modèle pour l'afficher.

De plus, pour utiliser une clause WHERE dans la requête SQL, vous pouvez inclure les conditions pertinentes dans la chaîne de requête :

sql_query = '''SELECT count(*) FROM app_picture WHERE vote = "yes"'''

En incorporant ces étapes, vous pouvez effectuer des requêtes SQL brutes dans les vues Django et accéder à des informations de base de données spécifiques pour améliorer les fonctionnalités de votre application.

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!

Déclaration:
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