Gestion des paramètres dans SQLAlchemy execute()
L'utilisation de la fonction connection.execute() de SQLAlchemy pour convertir les résultats sélectionnés en un tableau de cartes peut être une approche pratique pour les petits ensembles de données. Cependant, l'ajout de paramètres aux requêtes SQL à l'aide de format() peut entraîner des problèmes de sécurité.
Pour améliorer le mécanisme de gestion des paramètres, envisagez d'exploiter les techniques suivantes :
Utilisez SQLAlchemy.sql.text () pour les chaînes SQL paramétrées
Créez des chaînes SQL paramétrées en utilisant SQLAlchemy.sql.text() :
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)")
Spécifier les paramètres en tant qu'arguments de mots-clés
Lors de l'exécution de la chaîne SQL paramétrée, fournissez les valeurs des paramètres en tant que mots-clés à l'exécution () fonction :
conn.execute(sql, {"x": "m", "y": "z", "e1": "%@aol.com", "e2": "%@msn.com"}).fetchall()
Incorporer les paramètres dynamiques dans la personnalisation Fonctions
Si vous le souhaitez, modifiez votre fonction personnalisée, __sql_to_data() dans cet exemple, pour prendre en charge le passage de paramètres en créant un dictionnaire appelé valeurs pour les valeurs de paramètres :
def __sql_to_data(sql, values): ... conn.execute(sql, values)
Vous pouvez puis invoquez la fonction avec un dictionnaire de paramètres, tel que :
sql = 'SELECT ...' data = {'user_id': 3} results = __sql_to_data(sql, data)
En adoptant ces approches, vous pouvez améliorer la sécurité et la flexibilité de la gestion de vos paramètres dans Fonction exécuter() de SQLAlchemy.
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!