domingo, 9 de marzo de 2025

馃憠 Ejercicios Pr谩cticos con Flask y SQLite en Python

Ya aprendimos a conectar SQLite con Flask para crear aplicaciones web din谩micas. Ahora es momento de poner en pr谩ctica lo aprendido con ejercicios explicados paso a paso.

Hoy resolveremos ejercicios sobre:
✔️ Conectar Flask con una base de datos SQLite
✔️ Crear una API para insertar y consultar datos
✔️ Actualizar y eliminar registros desde la web
✔️ Ejemplo pr谩ctico con un sistema de gesti贸n de tareas

馃搶 Cada ejercicio incluye c贸digo, explicaci贸n y prueba de salida.


1️⃣ Ejercicio: Crear la Base de Datos SQLite y una Tabla de Tareas

馃搷 Objetivo: Crear una base de datos tareas.db y una tabla tareas.

馃敼 C贸digo:

import sqlite3 conexion = sqlite3.connect("tareas.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS tareas ( id INTEGER PRIMARY KEY AUTOINCREMENT, descripcion TEXT, estado TEXT ) """) conexion.commit() conexion.close() print("Base de datos y tabla de tareas creadas exitosamente.")

馃搶 Salida esperada:

Base de datos y tabla de tareas creadas exitosamente.

Este c贸digo crea la base de datos SQLite con una tabla de tareas.


2️⃣ Ejercicio: Crear una API con Flask para Obtener las Tareas

馃搷 Objetivo: Crear una API con Flask para obtener todas las tareas almacenadas en SQLite.

馃敼 C贸digo:

from flask import Flask, jsonify import sqlite3 app = Flask(__name__) def get_db_connection(): conexion = sqlite3.connect("tareas.db") conexion.row_factory = sqlite3.Row return conexion @app.route("/tareas", methods=["GET"]) def obtener_tareas(): conexion = get_db_connection() cursor = conexion.cursor() cursor.execute("SELECT * FROM tareas") tareas = cursor.fetchall() conexion.close() tareas_json = [{"id": tarea["id"], "descripcion": tarea["descripcion"], "estado": tarea["estado"]} for tarea in tareas] return jsonify(tareas_json) if __name__ == "__main__": app.run(debug=True)

馃搶 Salida esperada en http://127.0.0.1:5000/tareas:

[ {"id": 1, "descripcion": "Terminar proyecto", "estado": "Pendiente"}, {"id": 2, "descripcion": "Enviar informe", "estado": "Completado"} ]

Esta API permite obtener todas las tareas almacenadas en la base de datos.


3️⃣ Ejercicio: Agregar Tareas a la Base de Datos Desde una API

馃搷 Objetivo: Permitir que los usuarios agreguen tareas mediante una API Flask.

馃敼 C贸digo:

from flask import request @app.route("/tareas", methods=["POST"]) def agregar_tarea(): nueva_tarea = request.json conexion = get_db_connection() cursor = conexion.cursor() cursor.execute("INSERT INTO tareas (descripcion, estado) VALUES (?, ?)", (nueva_tarea["descripcion"], nueva_tarea["estado"])) conexion.commit() conexion.close() return jsonify({"mensaje": "Tarea agregada correctamente"}), 201

馃搶 Ejemplo de JSON enviado en una petici贸n POST:

{ "descripcion": "Aprender Flask", "estado": "Pendiente" }

馃搶 Salida esperada:

{ "mensaje": "Tarea agregada correctamente" }

Este c贸digo permite que los usuarios a帽adan tareas a la base de datos.


4️⃣ Ejercicio: Actualizar el Estado de una Tarea

馃搷 Objetivo: Modificar el estado de una tarea en la base de datos.

馃敼 C贸digo:

@app.route("/tareas/<int:id>", methods=["PUT"]) def actualizar_tarea(id): datos = request.json conexion = get_db_connection() cursor = conexion.cursor() cursor.execute("UPDATE tareas SET estado = ? WHERE id = ?", (datos["estado"], id)) conexion.commit() conexion.close() return jsonify({"mensaje": "Tarea actualizada correctamente"})

馃搶 Ejemplo de JSON enviado en una petici贸n PUT:

{ "estado": "Completado" }

馃搶 Salida esperada:

{ "mensaje": "Tarea actualizada correctamente" }

Este c贸digo permite actualizar el estado de una tarea espec铆fica.


5️⃣ Ejercicio: Eliminar una Tarea de la Base de Datos

馃搷 Objetivo: Borrar una tarea de la base de datos SQLite.

馃敼 C贸digo:

@app.route("/tareas/<int:id>", methods=["DELETE"]) def eliminar_tarea(id): conexion = get_db_connection() cursor = conexion.cursor() cursor.execute("DELETE FROM tareas WHERE id = ?", (id,)) conexion.commit() conexion.close() return jsonify({"mensaje": "Tarea eliminada correctamente"})

馃搶 Salida esperada al eliminar una tarea:

{ "mensaje": "Tarea eliminada correctamente" }

脷til para eliminar registros innecesarios.


馃殌 Conclusi贸n

✅ Hoy hemos resuelto ejercicios con Flask y SQLite en Python.
✅ Estos ejercicios permiten crear APIs para gestionar tareas desde una base de datos.
✅ Practica modificando el c贸digo para entenderlo mejor.

馃搶 Pr贸ximo post: C贸mo desplegar una aplicaci贸n Flask con SQLite en la nube.

馃搨 Descarga los ejercicios en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Te gustar铆a agregar nuevas funciones a este proyecto? ¡Com茅ntalo!



No hay comentarios:

Publicar un comentario

Se procedera a revision para su pronta publicacion en caso de que no incumpla las normas de blogger.