- Utilizzo pacchetto
Fletdi Python (suggerita v0.28.3) - Utilizzo Pattern MVC
- Utilizzo dei Package
- Utilizzo di mysql-connector-python (suggerita v9.5.0)
❗ ATTENZIONE: Ricordare di effettuare il fork del repository principale, quindi clonare su PyCharm il repository personale (https://github.com/my-github-username/Lab06) e non quello principale.
In caso di dubbi consultare la guida caricata nel lab02: https://github.com/Programmazione-Avanzata-2025-26/Lab02/blob/main/Guida.pdf
-
Installare
mysql-connector-python(v9.5.0)-
Lanciando, dal terminale di PyCharm il comando:
$ pip install mysql-connector-python -
Oppure usando la GUI di PyCharm e le funzionalità di installazione package:
File → Settings → Python → Interpreter → + → Cercare "mysql-connector-python" → Install Package
-
-
Per utilizzare il database è necessario installare, se non già fatto,
XAMPP(v8.2.12), quindi eseguireApacheeMySQLcliccando sui corrispettiviStart(vedi figura sottostante a sinistra). -
Successivamente cliccare il pulsante
Adminaffianco aMySQL(vedi figura sottostante a destra) per accedere aphpMyAdmin, un’interfaccia web per gestire il database. -
Dopo aver cliccato su
Adminsi apriràphpMyAdminsul browser come mostrato nella figura sottostante. -
Nella barra di navigazione in alto andare su
Importa, quindi cliccare suScegli Filee selezionare il fileautonoleggio.sqlfornito nel git, quindi cliccare suImportain basso alla pagina per importare il database. -
A questo punto il database sarà pronto per l'utilizzo.
Implementare un’applicazione per la gestione di un autonoleggio (già visto nel Lab03 e Lab05). L’applicazione deve consentire di:
- Visualizzare le automobili presenti nell’autonoleggio;
- Ricercare tutte le automobili di un certo modello.
Prestare attenzione alla gestione di tutte le possibili condizioni di errore. Fare uso del pattern MVC,
utilizzando i pacchetti flet e mysql-connector-python, come spiegato a lezione.
Realizzare un’interfaccia grafica con flet simile a quella mostrata in figura.
La proposta di interfaccia include:
- Titolo pagina (“Lab06”) – già fatto ✅
- Pulsante per cambiare tema (default dark mode) utilizzando
Switch– già fatto ✅ - Sezione 1: Intestazione Autonoleggio - già fatto ✅
- Un controllo
Textcon il nome dell'autonoleggio. - Un controllo
Textcon il nome del responsabile.
- Un controllo
- Sezione 2: Modificare il nome del responsabile - già fatto ✅
- Un controllo
Textcon testo “Modifica Informazioni”. - Un controllo
TextFieldper modificare il nome. - Un controllo
ElevatedButton“Conferma” per confermare la modifica.
- Un controllo
- Sezione 3: Lista delle Automobili - TODO 📝
- Un controllo
Textcon testo “Automobili”. - Un controllo
ElevatedButton“Mostra” per mostrare tutte le automobili presenti nel database. - Un contenitore
ListViewda popolare con le auto che vengono lette dal database.
- Un controllo
- Sezione 4: Ricerca automobile per modello - TODO 📝
- Un controllo
Textcon testo “Cerca Automobile”. - Un controllo
TextFieldper inserire il modello dell’automobile da cercare. - Un controllo
ElevatedButton“Cerca” per avviare la ricerca. - Un contenitore
ListViewda popolare con l’elenco delle automobili trovate nel database dato il modello inserito (nel database possono esserci più automobili dello stesso modello).
- Un controllo
Il repository del lab06 è organizzato con la struttura ad albero mostrata di seguito e contiene tutto il necessario per svolgere il laboratorio:
Lab06/
├── database/
│ ├── __init__.py
│ ├── connector.cnf
│ └── DB_connect.py
│
├── model/
│ ├── __init__.py
│ ├── automobile.py
│ ├── model.py (DA MODIFICARE)
│ └── noleggio.py
│
├── UI/
│ ├── __init__.py
│ ├── alert.py
│ ├── controller.py (DA MODIFICARE)
│ └── view.py (DA MODIFICARE)
│
├── autonoleggio.sql (DA IMPORTARE SU phpMyAdmin)
└── main.py (DA ESEGUIRE)
- Il file
autonoleggio.sqlda importare suphpMyAdminper creare e popolare il database. - Il file
main.pyda eseguire per far partire l’applicazione. - Il package database contiene il file
DB_connect.pyche effettua la connessione con il database (nel fileconnector.cnfsono contenute le info necessarie per effettuare la connessione al database). - Il package model contiene i file che implementano il modello, ovvero la struttura dati rappresentata dalla classe
Autonoleggio(model.py), insieme alle classiAutomobile(automobile.py) eNoleggio(noleggio.py), che ne costituiscono e supportano il funzionamento. - Il package UI contiene: il file
view.pyche definisce la classeView, che implementa l’interfaccia grafica utilizzandoflete il filecontroller.pycontenente la classeControllerche funge da intermediario tra la View e il Modello. Inoltre, qui è presente il filealert.pyin cui è definita la classeAlertManagerusata per mostrare gli alert mediante il metodoshow_alert().



