[gull] Requêtes SQL en LIKE ...% avec psycopg3
Philippe Strauss
philippe at straussaudio.ch
Mon Apr 22 16:55:00 CEST 2024
Ouhlà l'ortographe, désolé.
Dans ma DB j'ai par exemple:
diskpix=> select myco.genus.name from myco.genus where myco.genus.name
LIKE 'AMA%';
name
-----------------
AMAMITA
AMANITA
AMANITA (OPSIS)
AMANITHA
AMANITOPSIS
AMAUROCHAETE
AMAURODON
(7 rows)
On 4/22/24 4:47 PM, Philippe Strauss via gull wrote:
> 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