📢 Nuovo Corso Bootstrap Completo disponibile!

Gestione Rubrica Telefonica con Python e MySQL

Descrizione del Progetto

In questo progetto, realizzerai una semplice applicazione per la gestione di una rubrica telefonica utilizzando Python e MySQL. L’applicazione permetterà di creare, leggere, aggiornare ed eliminare contatti nella rubrica.

Requisiti

  1. Librerie Python: Utilizzare mysql-connector-python per interagire con MySQL.
  2. Contatti:
    • Ogni contatto deve avere un nome, un numero di telefono e un indirizzo email.
  3. Funzionalità CRUD:
    • Creare, leggere, aggiornare ed eliminare contatti.

Struttura del Progetto

  1. Database:
    • Creare una tabella contacts in MySQL.
  2. Funzionalità CRUD:
    • Implementare le operazioni CRUD per i contatti.

Passaggi

  1. Installazione delle Librerie:

    Terminal window
    pip install mysql-connector-python
  2. Configurazione del Database:

    • Creare un database MySQL chiamato phonebook.
    • Creare una tabella contacts con i campi id, name, phone e email.

Script SQL per la Creazione del Database

CREATE DATABASE phonebook;
USE phonebook;
CREATE TABLE contacts (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
phone VARCHAR(20) NOT NULL,
email VARCHAR(255) NOT NULL
);

Esempio di Codice

import mysql.connector
# Connessione al database
def connect_db():
return mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="phonebook"
)
# Creazione di un contatto
def create_contact(name, phone, email):
db = connect_db()
cursor = db.cursor()
query = "INSERT INTO contacts (name, phone, email) VALUES (%s, %s, %s)"
values = (name, phone, email)
cursor.execute(query, values)
db.commit()
print("Contatto creato con successo.")
cursor.close()
db.close()
# Lettura dei contatti
def read_contacts():
db = connect_db()
cursor = db.cursor()
cursor.execute("SELECT * FROM contacts")
results = cursor.fetchall()
for row in results:
print(f"ID: {row[0]}, Nome: {row[1]}, Telefono: {row[2]}, Email: {row[3]}")
cursor.close()
db.close()
# Aggiornamento di un contatto
def update_contact(contact_id, name, phone, email):
db = connect_db()
cursor = db.cursor()
query = "UPDATE contacts SET name = %s, phone = %s, email = %s WHERE id = %s"
values = (name, phone, email, contact_id)
cursor.execute(query, values)
db.commit()
print("Contatto aggiornato con successo.")
cursor.close()
db.close()
# Eliminazione di un contatto
def delete_contact(contact_id):
db = connect_db()
cursor = db.cursor()
query = "DELETE FROM contacts WHERE id = %s"
values = (contact_id,)
cursor.execute(query, values)
db.commit()
print("Contatto eliminato con successo.")
cursor.close()
db.close()
# Esempio di utilizzo
def main():
while True:
print("\nGestione Rubrica Telefonica")
print("1. Crea un nuovo contatto")
print("2. Visualizza tutti i contatti")
print("3. Aggiorna un contatto")
print("4. Elimina un contatto")
print("5. Esci")
choice = input("Seleziona un'opzione: ")
if choice == '1':
name = input("Inserisci il nome: ")
phone = input("Inserisci il telefono: ")
email = input("Inserisci l'email: ")
create_contact(name, phone, email)
elif choice == '2':
read_contacts()
elif choice == '3':
contact_id = input("Inserisci l'ID del contatto da aggiornare: ")
name = input("Inserisci il nuovo nome: ")
phone = input("Inserisci il nuovo telefono: ")
email = input("Inserisci la nuova email: ")
update_contact(contact_id, name, phone, email)
elif choice == '4':
contact_id = input("Inserisci l'ID del contatto da eliminare: ")
delete_contact(contact_id)
elif choice == '5':
print("Uscita...")
break
else:
print("Scelta non valida, riprova.")
if __name__ == "__main__":
main()

Istruzioni per l’Esecuzione

  1. Installazione delle librerie necessarie:

    Terminal window
    pip install mysql-connector-python
  2. Configurazione di MySQL:

    • Assicurati di avere un’istanza di MySQL in esecuzione sul tuo sistema.
    • Crea il database e la tabella eseguendo lo script SQL fornito.
  3. Esecuzione del Programma:

    • Salva il codice in un file Python, ad esempio phonebook_manager.py.
    • Esegui il programma:
      Terminal window
      python phonebook_manager.py
    • Segui le istruzioni per creare, leggere, aggiornare ed eliminare contatti nella rubrica.

Estensioni Possibili

  1. Interfaccia Grafica: Utilizzare una libreria come tkinter per creare un’interfaccia grafica per la rubrica telefonica.
  2. Esportazione/Importazione: Aggiungere funzionalità per esportare i contatti in un file CSV o importarli da un file CSV.
  3. Ricerca: Implementare una funzione di ricerca per trovare contatti in base al nome o al numero di telefono.