Menggunakan Parameter Dinamakan dengan SQLAlchemy connection.execute
SQLAlchemy's connection.execute kaedah membolehkan pelaksanaan pertanyaan SQL sambil mengubah keputusan menjadi tatasusunan daripada peta. Pada mulanya dilaksanakan dengan pemformatan rentetan untuk memasukkan parameter dalam pertanyaan, kaedah ini boleh dipertingkatkan untuk menggunakan parameter yang dinamakan untuk kecekapan dan keselamatan yang lebih baik.
Mengubahsuai Prosedur
Untuk mengubah suai kod untuk menerima parameter bernama, langkah berikut boleh diambil:
Gunakan Fungsi text() SQLAlchemy untuk menghuraikan rentetan 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)")
Lepaskan parameter bernama ke fungsi execute():
conn.execute(sql, {"x": "m", "y": "z", "e1": "%@aol.com", "e2": "%@msn.com"})
Kebaikan Dinamakan Parameter
Menggunakan parameter bernama menawarkan beberapa faedah:
Pendekatan Alternatif
Sebagai alternatif, seseorang boleh menentukan fungsi untuk membungkus kefungsian laksana dan menerima parameter bernama sebagai kamus:
def sql_to_data(sql, values): result = [] connection = engine.connect() try: rows = connection.execute(sql, values) ... finally: connection.close() return result
Dengan pendekatan ini, pertanyaan boleh dilaksanakan dengan:
sql = 'SELECT ...' data = {'user_id': 3} results = sql_to_data(sql, data)
Kaedah ini membolehkan penggunaan nama parameter sambil mengekalkan fungsi teras kod asal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Parameter Dinamakan dengan `connection.execute` SQLAlchemy untuk Pertanyaan SQL yang Lebih Selamat dan Boleh Dibaca?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!