Partage
  • Partager sur Facebook
  • Partager sur Twitter

ERREUR : not enough arguments for format string

Pycharm

Sujet résolu
    1 décembre 2021 à 17:29:24

    Bonjour, 

    J'ai un projet en Flask et j'ai une erreur dont j'ignore totalement la provenance et que je tente de regler depuis plusieurs heures.

    Voici mon script. Quelqu'un aurait une solution? Merci d'avance a tous ceux qui repondrons : 

    @app.route('/rejete/show')
    def show_rejete():
    sql="select * from rejete;"
    mycursor.execute(sql)
    rejetes=mycursor.fetchall()
    print(rejetes)
    return render_template('rejete/show_rejete.html', rejetes=rejetes)

    @app.route('/rejete/add', methods=['GET'])
    def add_rejete():
    sql = 'select id_batiment from Batiment;'
    mycursor.execute(sql)
    batiments = mycursor.fetchall()
    print('fetchall', batiments)
    return render_template('rejete/add_rejete.html', batiments=batiments)

    @app.route('/rejete/add', methods=['POST'])
    def valid_add_rejete():
    id_batiment = request.form.get('id', '')
    AAAA = request.form.get('AAAA', '')
    # select * from rejete where id_batiment= and aaaa=
    # fechall
    # if resultat : => pb
    #flash pb
    #return render_template('rejete/add_rejete.html', rejetes=rejetes)
    #else:
    quantite_dechets_rejete = request.form.get('quantite_dechets_rejete', '')
    tuple_add = (id_batiment, AAAA, quantite_dechets_rejete)
    print(tuple_add)
    sql = 'INSERT INTO rejete(id_batiment, AAAA, quantite_dechets_rejete) VALUES (%s, %s, %s);'
    mycursor.execute(sql, tuple_add)
    mydb.commit()

    print(u'type ajouté , AAAA :', AAAA, ' - quantite_dechets_rejete', quantite_dechets_rejete, '- id_batiment', id_batiment)
    flash(u'quantité modifié, id_batiment: ' + id_batiment + " AAAA : " + AAAA + "quantite_dechets_rejetes : " + quantite_dechets_rejete)
    return redirect(url_for('show_rejete'))

    @app.route('/rejete/edit', methods=['GET'])
    def edit_rejete():
    id_batiment = request.args.get('id', '')
    AAAA=request.args.get('AAAA', '')
    tuple_edit = (id_batiment, AAAA)
    print(tuple_edit)
    sql ='select * from rejete WHERE id_batiment=%s and AAAA=%s;'
    mycursor.execute(sql, tuple_edit)
    rejete = mycursor.fetchone()
    print('fetchall', rejete)
    return render_template('rejete/edit_rejete.html', rejete=rejete)

    @app.route('/rejete/edit', methods=['POST'])
    def valid_edit_rejete():
    id_batiment = request.form.get('id_batiment')
    AAAA = request.form['AAAA']
    quantite_dechets_rejete = request.form['quantite_dechets_rejete']
    tuple_update = (AAAA, quantite_dechets_rejete, id_batiment)
    print(tuple_update)
    sql = "update rejete set " \
    "AAAA=%s, quantite_dechets_rejete=%s where id_batiment=%s and AAAA=%s;"
    mycursor.execute(sql, tuple_update)
    mydb.commit()
    print(u'quantite modifié, id_batiment: ', id_batiment, " AAAA :", AAAA, " quantite_dechets_rejete :", quantite_dechets_rejete)
    flash(u'quantite modifié, id_batiment: ' + id_batiment + " AAAA : " + AAAA + "quantite_dechets_rejete : " + quantite_dechets_rejete)
    return redirect(url_for('show_rejete'))

    @app.route('/rejete/delete', methods=['GET'])
    def delete_rejete():
    id_batiment = request.args.get('id', '')
    AAAA=request.args.get('AAAA', '')
    tuple_delete = (id_batiment, AAAA)
    print(tuple_delete)
    sql = 'delete from rejete where id_batiment=%s and AAAA=%s;'
    mycursor.execute(sql, tuple_delete)
    mydb.commit()
    print ("batiment supprimée, id_batiment :", id_batiment)
    flash(u'batiment supprimée, id_batiment : ' + id_batiment)
    return redirect(url_for('show_rejete'))
    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2021 à 17:55:54

      ça aurait été sympa d'indiquer à quel emplacement se produit l'erreur (message complet de l'erreur retournée)

      Mais bon, l'erreur est que ton tuple_update dans ta méthode def valid_edit_rejete() ne contient que 3 valeurs alors que ta requête en attend 4 (4 %s dans ta requête, implique 4 valeurs dans le tuple des paramètres)

      -
      Edité par umfred 1 décembre 2021 à 17:56:04

      • Partager sur Facebook
      • Partager sur Twitter
        2 décembre 2021 à 10:03:17

        Bonjour,

        Déplacement vers un forum plus approprié

        Le sujet est déplacé de la section Base de données vers la section Langage Python

        • Partager sur Facebook
        • Partager sur Twitter
        Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
          5 décembre 2021 à 20:11:27

          umfred a écrit:

          ça aurait été sympa d'indiquer à quel emplacement se produit l'erreur (message complet de l'erreur retournée)

          Mais bon, l'erreur est que ton tuple_update dans ta méthode def valid_edit_rejete() ne contient que 3 valeurs alors que ta requête en attend 4 (4 %s dans ta requête, implique 4 valeurs dans le tuple des paramètres)

          -
          Edité par umfred 1 décembre 2021 à 17:56:04


          Déoloé je n'y ait pas pensée. Merci beaucoups!

          • Partager sur Facebook
          • Partager sur Twitter

          ERREUR : not enough arguments for format string

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown