[gull] Requêtes SQL en LIKE ...% avec psycopg3

Philippe Strauss philippe at straussaudio.ch
Mon Apr 22 16:47:55 CEST 2024


Je suis en train d'écrire en python une toute petite API JSON pour une 
appli. web d'archive de photos mycologique.
En support à l'API principale, j'ai deux petites partie qui permettent 
un autocomplete d'une formulaire de recherche
par genre et espèce.

Le code (pour le framework Flask) d'un de ces support d'autocomplete est:

--8<--
@app.route('/genus/<genus>')
def genus(genus):
     with dbconn.cursor() as cur:
         cur.execute("""SELECT myco.genus.name
             FROM myco.genus
             WHERE myco.genus.name LIKE %s""", (genus.upper()+'%',))
         lsgenus = cur.fetchall()
         ls = []
         for genus in lsgenus:
             ls.append(genus[0])
     return jsonify(ls)
--8<--

Quel est la manière la plus appropriée d'exprimer la requête en LIKE 
...% en SQL, avec psycopg3?
Mon code si dessus est-il safe en terme de SQL-injection?
Qu'en pensent ceux qui sont déjà passé par là?

-- 
Philippe Strauss
https://straussengineering.ch/



More information about the gull mailing list