Construcción de bases de datos - Python Programming Exercise

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 esta información en una base de datos SQLite. 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

Construcción De Bases De Datos

 Objectivo

Desarrollar un programa Python para crear una utilidad que solicite al usuario datos sobre los libros (título, autor, género y resumen) y almacene esta información en una base de datos SQLite.

 Ejemplo de ejercicio de Python

 Copiar código Python
import sqlite3

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 and create the table if necessary."""
        self.db_name = db_name
        self.connection = sqlite3.connect(self.db_name)
        self.cursor = self.connection.cursor()
        self._create_table()

    def _create_table(self):
        """Create the books table if it does not exist."""
        self.cursor.execute("""
            CREATE TABLE IF NOT EXISTS books (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                title TEXT NOT NULL,
                author TEXT NOT NULL,
                genre TEXT NOT NULL,
                summary TEXT NOT NULL
            )
        """)
        self.connection.commit()

    def add_book(self, book):
        """Add a new 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 get_book_data():
    """Prompt the user for book data."""
    title = input("Enter book title: ")
    author = input("Enter book author: ")
    genre = input("Enter book genre: ")
    summary = input("Enter book summary: ")
    return Book(title, author, genre, summary)


# Test Program
if __name__ == "__main__":
    # Initialize the database
    db = BookDatabase()

    # Ask the user to input a book's information
    print("Please enter information for a new book:")
    new_book = get_book_data()
    
    # Add the new book to the database
    db.add_book(new_book)
    print("\nBook added successfully!\n")

    # Ask the user if they want to add another book
    while True:
        add_another = input("Do you want to add another book? (y/n): ").lower()
        if add_another == 'y':
            new_book = get_book_data()
            db.add_book(new_book)
            print("\nBook added successfully!\n")
        elif add_another == 'n':
            break
        else:
            print("Invalid input. Please enter 'y' for yes or 'n' for no.")

    # Retrieve and display all books in the database
    print("\nBooks in the database:")
    books = db.get_all_books()
    for book in books:
        print(book)
    
    # Close the database connection
    db.close()

 Output

Please enter information for a new book:
Enter book title: The Great Gatsby
Enter book author: F. Scott Fitzgerald
Enter book genre: Fiction
Enter book summary: A story about Jay Gatsby's obsession with Daisy Buchanan.

Book added successfully!

 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.

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

  •  Acceso completo a bases de datos

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