🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Gestione Rubrica Telefonica con Python e MySQL

Codegrind TeamJul 10 2024

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:

    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:

    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:
      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.