Bonjour,

Je suis sur un python 3.7 et un postgresql 9.6.

J'ai créé sous postgresql une table client(Nom_client,Age_client)

J'ai utilisé Tkinter pour faire une petite grille de saisie avec 2 Entry et un bouton pour lancer la requête sql. Voici un extrait du code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
def Enregistrer(P_Nom,P_Age):
    host = "localhost"
    user = "postgres"
    dbname = "Evaluation"
    password = "admin"
 
    # Constrcution de la chaine de connection
    conn_string = "host={0} user={1} dbname={2} password={3} ".format(host, user, dbname, password)
    conn = psycopg2.connect(conn_string) 
    cursor = conn.cursor()
 
    cursor.execute("INSERT INTO client (nom_client,age_client) VALUES(%s,%s)", ([P_Nom],[P_Age]))
    conn.commit()

.............

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
#Bouton Enregistrer
BoutonEnregistrer = Button(master, text ='Enregistrer', command = lambda : Enregistrer(Nom.get(),Age.get()))


Tout fonctionne bien ...sauf que lorsque je regarde le contenu de mes champs dans postgresql, je vois apparaître {Dupont} dans le champs Nom et {42} dans le champs Age... donc avec des crochets en trop.

En fait, j'ai un soucis dans la clause Insert :
cursor.execute("INSERT INTO client (nom_client,age_client) VALUES(%s,%s)", ([P_Nom],[P_Age]))

avec la dernière partie pour récupérer les valeurs passées en paramètres dans la fonction Enregistrer.

Si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cursor.execute("INSERT INTO client (nom_client,age_client) VALUES(%s,%s)", ('P_Nom','P_Age'))
ou bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cursor.execute("INSERT INTO client (nom_client,age_client) VALUES(%s,%s)", (P_Nom,P_Age))
J'ai toujours des erreurs.

La seule solution qui fonctionne est la première mais elle me met des {} dans le contenu du champs.

Je début en Python... je tourne depuis 3 heures sur ce problème en consultant les forum... et là je commence à être un peu sec.

Toute aide sera la bienvenue. Merci à vous !!

JM