Maison >base de données >tutoriel mysql >Comment puis-je utiliser des paramètres nommés avec « connection.execute » de SQLAlchemy pour des requêtes SQL plus sûres et plus lisibles ?
Utilisation de paramètres nommés avec SQLAlchemy connection.execute
La méthode connection.execute de SQLAlchemy permet l'exécution de requêtes SQL tout en transformant les résultats en tableau de cartes. Initialement implémentée avec un formatage de chaîne pour inclure des paramètres dans la requête, cette méthode peut être améliorée pour utiliser des paramètres nommés pour une plus grande efficacité et sécurité.
Modification de la procédure
Pour modifier le code pour accepter les paramètres nommés, les étapes suivantes peuvent être suivies :
Utilisez la fonction text() de SQLAlchemy pour analyser la chaîne SQL :
sql = text("SELECT users.fullname || ', ' || addresses.email_address AS title FROM users, addresses WHERE users.id = addresses.user_id AND users.name BETWEEN :x AND :y AND (addresses.email_address LIKE :e1 OR addresses.email_address LIKE :e2)")
Passez les paramètres nommés à la fonction execute() :
conn.execute(sql, {"x": "m", "y": "z", "e1": "%@aol.com", "e2": "%@msn.com"})
Avantages de Named Paramètres
L'emploi de paramètres nommés offre plusieurs avantages :
Approches alternatives
Alternativement, on peut définir une fonction pour envelopper la fonctionnalité d'exécution et accepter les paramètres nommés comme dictionnaire :
def sql_to_data(sql, values): result = [] connection = engine.connect() try: rows = connection.execute(sql, values) ... finally: connection.close() return result
Avec cette approche, les requêtes peuvent être exécutées avec :
sql = 'SELECT ...' data = {'user_id': 3} results = sql_to_data(sql, data)
Cette méthode permet l'utilisation de paramètres nommés tout en conservant les fonctionnalités de base du code original.
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!