Pengendalian Parameter dalam SQLAlchemy execute()
Menggunakan fungsi connection.execute() SQLAlchemy untuk menukar hasil terpilih ke dalam tatasusunan peta boleh pendekatan yang mudah untuk set data kecil. Walau bagaimanapun, menambah parameter pada pertanyaan SQL menggunakan format() mungkin menimbulkan kebimbangan keselamatan.
Untuk menambah baik mekanisme pengendalian parameter, pertimbangkan untuk memanfaatkan teknik berikut:
Gunakan SQLAlchemy.sql.text () untuk Rentetan SQL Berparameter
Buat rentetan SQL berparameter menggunakan 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)")
Tentukan Parameter sebagai Argumen Kata Kunci
Semasa melaksanakan rentetan SQL berparameter, sediakan nilai parameter sebagai kata kunci untuk laksana () fungsi:
conn.execute(sql, {"x": "m", "y": "z", "e1": "%@aol.com", "e2": "%@msn.com"}).fetchall()
Sertakan Parameter Dinamik dalam Fungsi Tersuai
Jika mahu, ubah suai fungsi tersuai anda, __sql_to_data() dalam contoh ini, untuk menyokong pemindahan parameter dengan mencipta kamus yang dipanggil nilai untuk nilai parameter:
def __sql_to_data(sql, values): ... conn.execute(sql, values)
Anda kemudian boleh menggunakan fungsi dengan kamus parameter, seperti sebagai:
sql = 'SELECT ...' data = {'user_id': 3} results = __sql_to_data(sql, data)
Dengan menggunakan pendekatan ini, anda boleh meningkatkan keselamatan dan fleksibiliti pengendalian parameter anda dalam fungsi execute() SQLAlchemy.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Parameter dengan Selamat dalam Fungsi `execute()` SQLAlchemy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!