Django verwendet ?
nicht für die Parametrisierung verwendet es stattdessen Format-String-Style-Parameter, d. h. '%s' % 'hello'
usw. Siehe Parameter an raw übergeben [Django-Dokumentation]
.
Es sieht so aus, als ob Sie eine Abfrage der Form LIKE '<SOMETHING>%'
machen möchten , verwenden Sie zunächst nicht ?
(benutze %s
statt), anstatt zu versuchen, in der Abfrage zu verketten, concatenate in python selbst.
Daher sollte Ihre Abfrage wie folgt aussehen (Abgeschnittene irrelevante Teile):
cursor.execute("SELECT ... a.gene_name LIKE %s ORDER BY ...", ('{}%'.format(gene),))