0% ont trouvé ce document utile (0 vote)
33 vues4 pages

Gestion de produits et clients en Python

Ce document présente un script Python utilisant PyQt5 pour créer une interface graphique de gestion de produits et de clients avec une base de données SQLite. Il inclut des fonctionnalités pour ajouter, supprimer et rechercher des produits, ainsi que pour filtrer et afficher des clients. Le code définit deux fenêtres principales, gérant respectivement les produits et les clients, et utilise des requêtes SQL pour interagir avec la base de données.

Transféré par

Raed Keraani
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues4 pages

Gestion de produits et clients en Python

Ce document présente un script Python utilisant PyQt5 pour créer une interface graphique de gestion de produits et de clients avec une base de données SQLite. Il inclut des fonctionnalités pour ajouter, supprimer et rechercher des produits, ainsi que pour filtrer et afficher des clients. Le code définit deux fenêtres principales, gérant respectivement les produits et les clients, et utilise des requêtes SQL pour interagir avec la base de données.

Transféré par

Raed Keraani
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP4 Python: Les bases de données

Exercice 1:

​ Script Python :

import sys
from [Link] import QApplication, QMainWindow, QInputDialog, QMessageBox,
QTableWidgetItem
from [Link] import loadUi
import sqlite3

class fenetre1(QMainWindow):
def __init__(self):
super().__init__()
loadUi("[Link]", self)
[Link] = [Link]('[Link]')
[Link] = [Link]()

[Link]('''CREATE TABLE IF NOT EXISTS PRODUIT


(reference TEXT PRIMARY KEY, prix INTEGER, quantite_stock INTEGER)''')
[Link]('''CREATE TABLE IF NOT EXISTS Clients
(Num_client INTEGER PRIMARY KEY, Nom TEXT,
Adresse TEXT, Code_Postal TEXT)''')
[Link]()

[Link](self._ajoute_)
[Link](self._suprimer_)
[Link](self._recherche_)
[Link](self._Gclients_)
[Link](self._quitter_)

def _ajoute_(self):
txt1 = [Link]()
txt2 = [Link]()
txt3 = [Link]()
if txt1 and txt2 and txt3:
try:
[Link]('''INSERT INTO PRODUIT (reference, prix, quantite_stock)
VALUES(?,?,?)''', (txt1, int(txt2), int(txt3)))
[Link]()
[Link]()
[Link]()
[Link]()
[Link](self, "Succès", "Produit ajouté")
except ValueError:
[Link](self, "Erreur", "Prix et quantité doivent être des nombres")
except Exception as e:
[Link](self, "Erreur", f"Erreur: {e}")

def _suprimer_(self):
txt1 = [Link]()
if txt1:
try:
[Link]('''DELETE FROM PRODUIT WHERE reference = ?''', (txt1,))
[Link]()
[Link]()
[Link]()
[Link]()
[Link](self, "Succès", "Produit supprimé")
except Exception as e:
[Link](self, "Erreur", f"Erreur: {e}")

def _recherche_(self):
reference, ok = [Link](self, "recherche", "saisir la reference")
if ok and reference:
[Link]('''SELECT * FROM PRODUIT WHERE reference = ?''', (reference,))
produit = [Link]()
if produit:
message = f"reference: {produit[0]}\nprix: {produit[1]}\nquantite en stock: {produit[2]}"
[Link](self, "resultat", message)
else:
[Link](self, "resultat", "Produit non trouvé")

def _Gclients_(self):
self.fenetre_client = fenetre2()
self.fenetre_client.show()

def _quitter_(self):
[Link]()
[Link]()

class fenetre2(QMainWindow):
def __init__(self):
super().__init__()
loadUi("[Link]", self)
[Link] = [Link]('[Link]')
[Link](self._filtrer_)
self._remplir_donnees_exemple()

def _remplir_donnees_exemple(self):
clients = [
(1, "Dupont Jean", "12 Rue de Paris, Tunis", "1000"),
(2, "Martin Sophie", "45 Avenue Habib Bourguiba, Sfax", "3000"),
(3, "Bernard Pierre", "8 Rue de la République, Tunis", "1002"),
(4, "Leroy Marie", "25 Rue Ali Belhouane, Sousse", "4000"),
(5, "Petit David", "30 Avenue de la Liberté, Tunis", "1001"),
(6, "Moreau Alice", "15 Rue Ibn Khaldoun, Sfax", "3020")
]

cursor = [Link]()
[Link]('''INSERT OR IGNORE INTO Clients VALUES (?, ?, ?, ?)''', clients)
[Link]()
[Link]()
self._filtrer_()

def _filtrer_(self):
ville = [Link]().strip()
cursor = [Link]()

if ville:
[Link]('''SELECT * FROM Clients WHERE Adresse LIKE ?''', (f'%{ville}%',))
else:
[Link]('''SELECT * FROM Clients''')

clients_filtres = [Link]()
self.afficher_dans_tableau(clients_filtres)

def afficher_dans_tableau(self, clients):

[Link](len(clients))
for ligne, client in enumerate(clients):
for colonne, valeur in enumerate(client):
item = QTableWidgetItem(str(valeur))
[Link](ligne, colonne, item)

def closeEvent(self, event):


[Link]()
[Link]()

if __name__ == "__main__":
app = QApplication([Link])
fenetre = fenetre1()
[Link]()
app.exec_()
​ Interfaces graphiques correspondantes avec Qt Designer :

Vous aimerez peut-être aussi