domingo, 16 de marzo de 2025

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

Ya aprendimos a conectar Flask con PostgreSQL. Ahora es momento de poner en pr谩ctica lo aprendido con ejercicios explicados paso a paso.

Hoy resolveremos ejercicios sobre:
✔️ Crear una base de datos PostgreSQL y conectarla a Flask
✔️ Definir modelos con SQLAlchemy
✔️ Construir una API REST para insertar y consultar datos
✔️ Actualizar y eliminar registros en PostgreSQL desde Flask

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


1️⃣ Ejercicio: Crear la Base de Datos y Conectarla con Flask

馃搷 Objetivo: Crear una base de datos PostgreSQL y conectarla a Flask usando SQLAlchemy.

馃搶 C贸digo:

from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # Configurar PostgreSQL en Flask app.config["SQLALCHEMY_DATABASE_URI"] = "postgresql://mi_usuario:mi_clave@localhost/mi_app" app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False db = SQLAlchemy(app) @app.route("/") def home(): return "Conexi贸n exitosa con PostgreSQL" if __name__ == "__main__": app.run(debug=True)

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

Conexi贸n exitosa con PostgreSQL

Este c贸digo establece la conexi贸n entre Flask y PostgreSQL.


2️⃣ Ejercicio: Definir un Modelo para Usuarios en PostgreSQL

馃搷 Objetivo: Crear una tabla usuarios en PostgreSQL con SQLAlchemy.

馃搶 C贸digo:

class Usuario(db.Model): id = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(100), nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) # Crear la tabla en PostgreSQL with app.app_context(): db.create_all()

馃搶 Salida esperada:

Tabla usuarios creada en PostgreSQL

Ahora Flask puede almacenar y gestionar usuarios en PostgreSQL.


3️⃣ Ejercicio: Insertar Datos en PostgreSQL desde Flask

馃搷 Objetivo: Crear una API que permita agregar nuevos usuarios.

馃搶 C贸digo:

from flask import request, jsonify @app.route("/usuarios", methods=["POST"]) def agregar_usuario(): datos = request.json nuevo_usuario = Usuario(nombre=datos["nombre"], email=datos["email"]) db.session.add(nuevo_usuario) db.session.commit() return jsonify({"mensaje": "Usuario agregado correctamente"}), 201

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

{ "nombre": "Carlos", "email": "carlos@example.com" }

馃搶 Salida esperada:

{ "mensaje": "Usuario agregado correctamente" }

Ahora los usuarios pueden registrarse desde una API en Flask.


4️⃣ Ejercicio: Consultar Usuarios desde PostgreSQL

馃搷 Objetivo: Obtener una lista de usuarios desde PostgreSQL.

馃搶 C贸digo:

@app.route("/usuarios", methods=["GET"]) def obtener_usuarios(): usuarios = Usuario.query.all() usuarios_json = [ {"id": u.id, "nombre": u.nombre, "email": u.email} for u in usuarios ] return jsonify(usuarios_json)

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

[ {"id": 1, "nombre": "Carlos", "email": "carlos@example.com"}, {"id": 2, "nombre": "Ana", "email": "ana@example.com"} ]

Ahora la API Flask puede consultar usuarios en PostgreSQL.


5️⃣ Ejercicio: Actualizar Datos de un Usuario

馃搷 Objetivo: Modificar el email de un usuario en PostgreSQL.

馃搶 C贸digo:

@app.route("/usuarios/<int:id>", methods=["PUT"]) def actualizar_usuario(id): datos = request.json usuario = Usuario.query.get_or_404(id) usuario.email = datos["email"] db.session.commit() return jsonify({"mensaje": "Usuario actualizado correctamente"})

馃搶 Ejemplo de JSON enviado en PUT:

{ "email": "nuevoemail@example.com" }

馃搶 Salida esperada:

{ "mensaje": "Usuario actualizado correctamente" }

Permite modificar registros en la base de datos desde Flask.


6️⃣ Ejercicio: Eliminar un Usuario en PostgreSQL

馃搷 Objetivo: Borrar un usuario de la base de datos PostgreSQL.

馃搶 C贸digo:

@app.route("/usuarios/<int:id>", methods=["DELETE"]) def eliminar_usuario(id): usuario = Usuario.query.get_or_404(id) db.session.delete(usuario) db.session.commit() return jsonify({"mensaje": "Usuario eliminado correctamente"})

馃搶 Salida esperada:

{ "mensaje": "Usuario eliminado correctamente" }

Ahora los usuarios pueden ser eliminados desde la API.


馃殌 Conclusi贸n

Flask y PostgreSQL permiten construir APIs escalables en Python.
SQLAlchemy facilita la manipulaci贸n de datos en la base de datos.
Ahora puedes crear, leer, actualizar y eliminar registros en PostgreSQL.

馃搶 Pr贸ximo post: C贸mo autenticar usuarios en Flask con PostgreSQL.

馃搨 C贸digo disponible en mi GitHub: github.com/josecodetech

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

馃挰 ¿Has trabajado con PostgreSQL en Flask? ¿Qu茅 tal tu experiencia? Cu茅ntamelo.



No hay comentarios:

Publicar un comentario

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