Acceso completo a bases de datos - Python Programming Exercise

En este ejercicio, desarrollarás un programa en Python para crear una utilidad que permita al usuario ingresar información sobre libros y navegar por los datos existentes. Este ejercicio es perfecto para practicar el manejo de archivos, la gestión de bases de datos y la interacción con el usuario en Python. Al implementar este programa, obtendrás experiencia práctica en el manejo de operaciones de archivos, gestión de bases de datos e interacción con el usuario en Python. Este ejercicio no solo refuerza tu comprensión del manejo de archivos, sino que también te ayuda a desarrollar prácticas de codificación eficientes para gestionar las interacciones con el usuario. Además, este ejercicio proporciona una excelente oportunidad para explorar la versatilidad de Python en aplicaciones del mundo real. Al trabajar con el manejo de archivos, la gestión de bases de datos y la interacción con el usuario, aprenderás a estructurar tu código de manera eficiente, lo cual es una habilidad crucial en muchos escenarios de programación. Este ejercicio también te anima a pensar críticamente sobre cómo estructurar tu código para la legibilidad y el rendimiento, convirtiéndolo en una valiosa adición a tu portafolio de programación. Ya seas un principiante o un programador experimentado, este ejercicio te ayudará a profundizar tu comprensión de Python y mejorar tus habilidades para resolver problemas.

 Categoría

Trabajar con bases de datos relacionales

 Ejercicio

Acceso Completo A Bases De Datos

 Objectivo

Desarrollar un programa Python para crear una utilidad que permita al usuario ingresar información sobre libros y explorar los datos existentes. El programa debe manejar el caso en el que el archivo de datos no existe cuando se inicia el programa.

 Ejemplo de ejercicio de Python

 Copiar código Python
import sqlite3
import os

class Book:
    """Represents a book with a title, author, genre, and summary."""
    
    def __init__(self, title, author, genre, summary):
        """Initialize the book with title, author, genre, and summary."""
        self.title = title
        self.author = author
        self.genre = genre
        self.summary = summary

    def __str__(self):
        """Return a string representation of the book."""
        return f"Title: {self.title}\nAuthor: {self.author}\nGenre: {self.genre}\nSummary: {self.summary}\n"


class BookDatabase:
    """Manages a database of books."""
    
    def __init__(self, db_name="books.db"):
        """Initialize the database connection."""
        self.db_name = db_name
        self.connection = sqlite3.connect(self.db_name)
        self.cursor = self.connection.cursor()
        self.create_table_if_not_exists()

    def create_table_if_not_exists(self):
        """Create the books table if it doesn't exist."""
        self.cursor.execute('''
            CREATE TABLE IF NOT EXISTS books (
                title TEXT,
                author TEXT,
                genre TEXT,
                summary TEXT
            )
        ''')
        self.connection.commit()

    def add_book(self, book):
        """Add a book to the database."""
        self.cursor.execute('''
            INSERT INTO books (title, author, genre, summary)
            VALUES (?, ?, ?, ?)
        ''', (book.title, book.author, book.genre, book.summary))
        self.connection.commit()

    def get_all_books(self):
        """Retrieve all books from the database."""
        self.cursor.execute("SELECT title, author, genre, summary FROM books")
        rows = self.cursor.fetchall()
        return [Book(title, author, genre, summary) for title, author, genre, summary in rows]

    def close(self):
        """Close the database connection."""
        self.connection.close()


def display_books(db):
    """Display all books stored in the database."""
    books = db.get_all_books()
    
    if not books:
        print("No books found in the database.")
    else:
        print("\nBooks stored in the database:\n")
        for book in books:
            print(book)


def add_book_to_db(db):
    """Allow the user to input information about a book and add it to the database."""
    print("\nEnter the details of the new book:")
    title = input("Title: ")
    author = input("Author: ")
    genre = input("Genre: ")
    summary = input("Summary: ")
    
    new_book = Book(title, author, genre, summary)
    db.add_book(new_book)
    print("\nBook added to the database!")


def main():
    """Main function to run the program."""
    db = BookDatabase()

    while True:
        print("\nBook Database Utility")
        print("1. Display all books")
        print("2. Add a new book")
        print("3. Exit")
        
        choice = input("Enter your choice: ")
        
        if choice == "1":
            display_books(db)
        elif choice == "2":
            add_book_to_db(db)
        elif choice == "3":
            print("Exiting program.")
            break
        else:
            print("Invalid choice. Please try again.")

    db.close()


# Run the program
if __name__ == "__main__":
    main()

 Output

Book Database Utility
1. Display all books
2. Add a new book
3. Exit
Enter your choice: 1

Books stored in the database:

Title: The Great Gatsby
Author: F. Scott Fitzgerald
Genre: Fiction
Summary: A story about Jay Gatsby's obsession with Daisy Buchanan.

 Comparte este ejercicio de Python

 Más Ejercicios Programación Python de Trabajar con bases de datos relacionales

¡Explora nuestro conjunto de ejercicios de programación Python! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de Python. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en Python.

  •  Construcción de bases de datos

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad que solicite al usuario datos sobre libros (título, autor, género y resumen) y almacene...

  •  Consultando bases de datos

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad que muestre los datos sobre libros que tu programa anterior ha almacenado. Este ejer...