Parameterbehandlung in SQLAlchemyexecute()
Die Verwendung der Funktion „connection.execute()“ von SQLAlchemy zum Konvertieren ausgewählter Ergebnisse in ein Array von Karten kann sein ein praktischer Ansatz für kleine Datensätze. Das Hinzufügen von Parametern zu SQL-Abfragen mithilfe von format() kann jedoch Sicherheitsbedenken mit sich bringen.
Um den Parameterverarbeitungsmechanismus zu verbessern, sollten Sie die folgenden Techniken nutzen:
Verwenden Sie SQLAlchemy.sql.text () für parametrisierte SQL-Strings
Erstellen Sie parametrisierte SQL-Strings mit 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)")
Parameter als Schlüsselwortargumente angeben
Geben Sie beim Ausführen der parametrisierten SQL-Zeichenfolge die Parameterwerte als Schlüsselwörter für die Ausführung an ()-Funktion:
conn.execute(sql, {"x": "m", "y": "z", "e1": "%@aol.com", "e2": "%@msn.com"}).fetchall()
Dynamische Parameter in benutzerdefinierte integrieren Funktionen
Ändern Sie bei Bedarf Ihre benutzerdefinierte Funktion, in diesem Beispiel __sql_to_data(), um die Parameterübergabe zu unterstützen, indem Sie ein Wörterbuch mit dem Namen „Werte“ für Parameterwerte erstellen:
def __sql_to_data(sql, values): ... conn.execute(sql, values)
Das können Sie Rufen Sie dann die Funktion mit einem Parameterwörterbuch auf, z. B.:
sql = 'SELECT ...' data = {'user_id': 3} results = __sql_to_data(sql, data)
Durch die Übernahme dieser Ansätze können Sie die Sicherheit und Flexibilität Ihrer Funktion erhöhen Parameterbehandlung in der Funktionexecute() von SQLAlchemy.
Das obige ist der detaillierte Inhalt vonWie kann ich Parameter in der Funktion „execute()' von SQLAlchemy sicher verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!