Mostrando entradas con la etiqueta sqlite. Mostrar todas las entradas
Mostrando entradas con la etiqueta sqlite. Mostrar todas las entradas

viernes, 24 de julio de 2026

Día 25 — SQLite: bases de datos sin instalar nada

SQLite es un sistema de base de datos ligero que viene incluido en la librería estándar de Python, sin necesidad de instalar ni configurar ningún servidor adicional. Es ideal para aplicaciones pequeñas, prototipos rápidos o para aprender los fundamentos de SQL desde un entorno controlado.

El módulo sqlite3 permite crear tablas, insertar registros, realizar consultas y gestionar transacciones usando sentencias SQL estándar, lo que hace que el conocimiento adquirido sea directamente transferible a otros motores de base de datos como MySQL o PostgreSQL.

Código de ejemplo:

import sqlite3 conexion = sqlite3.connect("clientes.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS clientes ( id INTEGER PRIMARY KEY, nombre TEXT, email TEXT ) """) cursor.execute("INSERT INTO clientes VALUES (1, 'Ana', 'ana@mail.com')") conexion.commit() for fila in cursor.execute("SELECT * FROM clientes"): print(fila) conexion.close()




miércoles, 12 de marzo de 2025

👉 Cómo Desplegar una Aplicación Flask con SQLite en la Nube

Hemos desarrollado una aplicación web con Flask y SQLite. Ahora es momento de desplegarla en la nube para que cualquier persona pueda acceder a ella.

Hoy aprenderás:
✔️ Opciones para desplegar Flask en la nube
✔️ Cómo preparar la aplicación para producción
✔️ Usar Render o Railway para subir Flask con SQLite
✔️ Ejemplo paso a paso con un despliegue real

📌 Con este tutorial, podrás publicar tu aplicación Flask en internet.


1️⃣ Opciones para Desplegar Flask con SQLite

Existen varias opciones para hospedar una aplicación Flask en la nube. Algunas de las más recomendadas son:

✅ Render → Plataforma gratuita y fácil de usar para Flask y SQLite.
✅ Railway → Alternativa moderna con soporte para bases de datos.
✅ Heroku → Requiere configuraciones extra, pero es popular.
✅ VPS (Digital Ocean, AWS, Linode) → Más avanzado, pero con mayor control.

Hoy usaremos Render, ya que permite subir Flask con SQLite fácilmente.


2️⃣ Preparar la Aplicación Flask para Producción

Antes de desplegar, debemos crear un entorno virtual y configurar dependencias.

📌 Pasos previos:

1️⃣ Crea un entorno virtual en la carpeta de tu proyecto:

python -m venv venv source venv/bin/activate # En Mac/Linux venv\Scripts\activate # En Windows

2️⃣ Instala Flask y dependencias necesarias:

pip install flask gunicorn

3️⃣ Crea un archivo requirements.txt con las dependencias:

pip freeze > requirements.txt

📌 Este archivo es necesario para que Render instale las dependencias automáticamente.


3️⃣ Subir la Aplicación a GitHub

Para desplegar en Render, primero necesitamos subir el proyecto a GitHub.

📌 Pasos para subir el código a un repositorio:

git init git add . git commit -m "Primera versión de la app Flask" git branch -M main git remote add origin https://github.com/tuusuario/tu-repositorio.git git push -u origin main

✅ Ahora el código está en GitHub y listo para ser desplegado.


4️⃣ Desplegar Flask con SQLite en Render

Render permite ejecutar Flask con bases de datos SQLite fácilmente.

📌 Pasos para el despliegue:

1️⃣ Ve a Render y crea una cuenta.
2️⃣ En New Web Service, selecciona tu repositorio de GitHub.
3️⃣ En Build Command, escribe:

pip install -r requirements.txt

4️⃣ En Start Command, escribe:

gunicorn -b 0.0.0.0:10000 app:app

5️⃣ Configura el puerto en 10000 y despliega la aplicación.

📌 Después del proceso, tu aplicación Flask estará en línea.

✅ Ejemplo de URL:

https://mi-aplicacion-flask.onrender.com

5️⃣ Probar la Aplicación en Producción

📌 Para probar que funciona correctamente, visita:

https://mi-aplicacion-flask.onrender.com/tareas

Si todo está bien, deberías ver los datos de SQLite en JSON:

[ {"id": 1, "descripcion": "Aprender Flask", "estado": "Pendiente"}, {"id": 2, "descripcion": "Deploy con Render", "estado": "Completado"} ]

✅ Tu aplicación Flask con SQLite ahora está accesible en internet.


🚀 Conclusión

✅ Render permite desplegar Flask con SQLite fácilmente.
✅ Configurar dependencias y subir el código a GitHub es clave.
✅ Una vez en la nube, cualquier persona puede acceder a la API Flask.

📌 Próximo post: Cómo conectar Flask con una base de datos PostgreSQL en producción.

📂 Código disponible en mi GitHub: github.com/josecodetech

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

💬 ¿Has desplegado una aplicación Flask antes? ¿Qué plataforma usaste? Cuéntamelo.



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!



viernes, 7 de marzo de 2025

👉 Conectando SQLite con una Aplicación Web en Python: Flask y Bases de Datos

 

Hemos aprendido a manejar bases de datos SQLite en Python. Ahora daremos un paso más: conectar SQLite con una aplicación web usando Flask.

Hoy aprenderás:
✔️ ¿Qué es Flask y por qué usarlo?
✔️ Cómo conectar Flask con SQLite
✔️ Crear una API para interactuar con la base de datos
✔️ Consultar y mostrar datos en una página web
✔️ Ejemplo práctico paso a paso

📌 Con este tutorial, podrás construir aplicaciones web dinámicas con bases de datos.


1️⃣ ¿Qué es Flask y por qué usarlo?

Flask es un framework ligero para crear aplicaciones web en Python.

📌 Ventajas de Flask:
✅ Fácil de aprender y usar
✅ Permite crear APIs y páginas web dinámicas
✅ Compatible con bases de datos como SQLite
✅ Ideal para proyectos pequeños y medianos

Para instalar Flask, ejecuta:

pip install flask

2️⃣ Conectar Flask con SQLite

El primer paso es crear un archivo app.py y configurar la conexión con SQLite.

📌 Código para conectar Flask con SQLite:

from flask import Flask, g
import sqlite3 app = Flask(__name__) DATABASE = "mi_base.db" def get_db(): db = getattr(g, "_database", None) if db is None: db = g._database = sqlite3.connect(DATABASE) return db @app.teardown_appcontext def close_connection(exception): db = getattr(g, "_database", None) if db is not None: db.close()

📌 Explicación:
✅ sqlite3.connect(DATABASE) → Conecta SQLite con Flask.
✅ get_db() → Obtiene la conexión a la base de datos.
✅ @app.teardown_appcontext → Cierra la conexión cuando termina la petición.


3️⃣ Crear una API con Flask y SQLite

Vamos a crear una API REST que devuelva los datos almacenados en SQLite.

📌 Código para obtener todos los registros de una tabla productos:

from flask import jsonify
@app.route("/productos", methods=["GET"]) def get_productos(): db = get_db() cursor = db.cursor() cursor.execute("SELECT * FROM productos") productos = cursor.fetchall() productos_json = [ {"id": p[0], "nombre": p[1], "precio": p[2], "stock": p[3]} for p in productos ] return jsonify(productos_json)

📌 Explicación:
✅ @app.route("/productos") → Define una ruta para obtener los productos.
✅ jsonify(productos_json) → Devuelve los datos en formato JSON.

📌 Salida esperada al visitar http://127.0.0.1:5000/productos en el navegador:

[
{"id": 1, "nombre": "Laptop", "precio": 1200.5, "stock": 10}, {"id": 2, "nombre": "Mouse", "precio": 25.99, "stock": 50} ]

4️⃣ Insertar Datos desde una API Flask

También podemos permitir que los usuarios envíen datos a la base de datos.

📌 Código para insertar productos en la base de datos:

from flask import request
@app.route("/productos", methods=["POST"]) def add_producto(): nuevo_producto = request.json db = get_db() cursor = db.cursor() cursor.execute("INSERT INTO productos (nombre, precio, stock) VALUES (?, ?, ?)", (nuevo_producto["nombre"], nuevo_producto["precio"], nuevo_producto["stock"])) db.commit() return jsonify({"mensaje": "Producto agregado correctamente"}), 201

📌 Explicación:
✅ request.json → Recibe los datos enviados en formato JSON.
✅ INSERT INTO productos (...) VALUES (...) → Inserta un nuevo registro en la base de datos.

📌 Ejemplo de JSON enviado en una petición POST:

{
"nombre": "Teclado", "precio": 45.75, "stock": 30 }

✅ El producto se agregará a la base de datos y la API responderá con un mensaje de éxito.


5️⃣ Mostrar los Datos en una Página Web con Flask y SQLite

Flask también nos permite mostrar los datos en una página HTML en lugar de JSON.

📌 Código para mostrar los productos en una plantilla HTML:

from flask import render_template
@app.route("/") def index(): db = get_db() cursor = db.cursor() cursor.execute("SELECT * FROM productos") productos = cursor.fetchall() return render_template("index.html", productos=productos)

📌 Plantilla templates/index.html:

<!DOCTYPE html>
<html> <head> <title>Lista de Productos</title> </head> <body> <h1>Productos Disponibles</h1> <ul> {% for producto in productos %} <li>{{ producto[1] }} - Precio: {{ producto[2] }} USD - Stock: {{ producto[3] }}</li> {% endfor %} </ul> </body> </html>

📌 Explicación:
✅ render_template("index.html") → Carga una plantilla HTML.
✅ {% for producto in productos %} → Muestra cada producto en la página.

📌 Salida esperada en el navegador:

Productos Disponibles
- Laptop - Precio: 1200.5 USD - Stock: 10 - Mouse - Precio: 25.99 USD - Stock: 50

✅ Esta página muestra los productos almacenados en SQLite.


🚀 Conclusión

✅ Flask permite conectar aplicaciones web con SQLite en Python.
✅ Podemos crear APIs REST para interactuar con la base de datos.
✅ Los datos pueden mostrarse en formato JSON o en una página HTML.

📌 Próximo post: Ejercicios prácticos con Flask y SQLite en Python.

📂 Código disponible en mi GitHub: github.com/josecodetech

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

💬 ¿Has trabajado con bases de datos en aplicaciones web? Cuéntamelo.



miércoles, 5 de marzo de 2025

👉 Ejercicios Prácticos con Bases de Datos SQLite en Python

Ya aprendimos a crear, insertar y consultar datos en bases de datos SQLite en Python. Ahora es momento de poner en práctica lo aprendido con ejercicios explicados paso a paso.

Hoy resolveremos ejercicios sobre:
✔️ Conectar y crear una base de datos SQLite
✔️ Insertar múltiples registros en una tabla
✔️ Consultar, actualizar y eliminar datos
✔️ Ejemplo práctico con una base de datos de productos

📌 Cada ejercicio incluye el código, explicación y prueba de salida.


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

📍 Objetivo: Crear una base de datos llamada tienda.db y una tabla productos.

🔹 Código:

import sqlite3 conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS productos ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, precio REAL, stock INTEGER ) """) conexion.commit() conexion.close() print("Base de datos y tabla creadas exitosamente.")

✅ Este código crea una base de datos SQLite con una tabla productos.

📌 Salida esperada:

Base de datos y tabla creadas exitosamente.

2️⃣ Ejercicio: Insertar Productos en la Base de Datos

📍 Objetivo: Insertar varios productos en la tabla productos.

🔹 Código:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() productos = [ ("Laptop", 1200.50, 10), ("Mouse", 25.99, 50), ("Teclado", 45.75, 30), ("Monitor", 300.00, 15) ] cursor.executemany("INSERT INTO productos (nombre, precio, stock) VALUES (?, ?, ?)", productos) conexion.commit() conexion.close() print("Productos agregados correctamente.")

📌 Salida esperada:

Productos agregados correctamente.

✅ Este código inserta múltiples registros en la tabla de productos.


3️⃣ Ejercicio: Consultar los Productos Disponibles

📍 Objetivo: Obtener todos los productos almacenados en la base de datos.

🔹 Código:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM productos") productos = cursor.fetchall() for producto in productos: print(producto) conexion.close()

📌 Salida esperada:

(1, 'Laptop', 1200.5, 10) (2, 'Mouse', 25.99, 50) (3, 'Teclado', 45.75, 30) (4, 'Monitor', 300.0, 15)

✅ Ideal para visualizar los datos almacenados en SQLite.


4️⃣ Ejercicio: Actualizar el Stock de un Producto

📍 Objetivo: Modificar la cantidad de stock de un producto en la base de datos.

🔹 Código:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("UPDATE productos SET stock = ? WHERE nombre = ?", (20, "Laptop")) conexion.commit() conexion.close() print("Stock actualizado correctamente.")

📌 Salida esperada:

Stock actualizado correctamente.

✅ Permite actualizar datos en la base de datos.


5️⃣ Ejercicio: Eliminar un Producto de la Base de Datos

📍 Objetivo: Borrar un producto de la base de datos SQLite.

🔹 Código:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("DELETE FROM productos WHERE nombre = ?", ("Mouse",)) conexion.commit() conexion.close() print("Producto eliminado correctamente.")

📌 Salida esperada:

Producto eliminado correctamente.

✅ Útil para eliminar registros innecesarios.


🚀 Conclusión

✅ Hoy hemos resuelto ejercicios con bases de datos SQLite en Python.
✅ Estos ejercicios permiten gestionar información almacenada en una base de datos.
✅ Practica modificando el código para entenderlo mejor.

📌 Próximo post: Cómo conectar SQLite con una aplicación web en Python.

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

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

💬 ¿Qué tipo de datos te gustaría gestionar en SQLite? Coméntamelo.



lunes, 3 de marzo de 2025

👉 Bases de Datos en Python con SQLite: Cómo Almacenar y Consultar Datos

Cuando trabajamos con datos en Python, los archivos TXT, CSV o JSON pueden ser útiles, pero no siempre son la mejor opción. Para almacenar información de forma estructurada y eficiente, utilizamos bases de datos.

Hoy aprenderás:
✔️ ¿Qué es SQLite y por qué usarlo en Python?
✔️ Crear y conectar una base de datos SQLite
✔️ Crear, insertar y consultar datos en una tabla
✔️ Actualizar y eliminar registros
✔️ Ejemplo práctico paso a paso

📌 Al final del post, podrás manejar bases de datos en Python como un profesional.


1️⃣ ¿Qué es SQLite y por qué usarlo en Python?

SQLite es un gestor de bases de datos ligero, integrado en Python, que permite almacenar datos en un archivo .db sin necesidad de un servidor.

📌 Ventajas de SQLite:
✅ No necesita configuración extra, ya viene con Python.
✅ Almacena datos en un solo archivo .db.
✅ Soporta SQL para manejar datos de forma eficiente.
✅ Es ideal para pequeñas aplicaciones y pruebas.

Para usar SQLite en Python, solo necesitamos importar sqlite3.


2️⃣ Crear y Conectar una Base de Datos SQLite

El primer paso es crear o conectar una base de datos SQLite.

📌 Código para conectar o crear una base de datos:

import sqlite3 conexion = sqlite3.connect("mi_base_de_datos.db") # Crea o abre el archivo de la BD cursor = conexion.cursor() # Permite ejecutar comandos SQL print("Base de datos conectada correctamente.") conexion.close() # Cierra la conexión

📌 Explicación:
✅ sqlite3.connect("mi_base_de_datos.db") → Crea un archivo de base de datos si no existe.
✅ cursor = conexion.cursor() → Permite ejecutar consultas SQL.
✅ conexion.close() → Cierra la conexión cuando terminamos.


3️⃣ Crear una Tabla en SQLite

Para guardar datos en la base de datos, necesitamos crear una tabla.

📌 Ejemplo: Crear una tabla usuarios en la base de datos:

import sqlite3 conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS usuarios ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, edad INTEGER, email TEXT ) """) conexion.commit() # Guarda los cambios conexion.close() print("Tabla creada exitosamente.")

📌 Explicación:
✅ CREATE TABLE IF NOT EXISTS usuarios → Crea la tabla si no existe.
✅ id INTEGER PRIMARY KEY AUTOINCREMENT → Identificador único que se incrementa automáticamente.
✅ nombre TEXT → Almacena texto.
✅ edad INTEGER → Almacena números enteros.
✅ email TEXT → Almacena correos electrónicos.
✅ commit() → Guarda los cambios en la base de datos.


4️⃣ Insertar Datos en una Base de Datos SQLite

Ahora que tenemos la tabla, podemos insertar registros.

📌 Ejemplo: Insertar un usuario en la base de datos:

conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", ("José", 25, "jose@example.com")) conexion.commit() conexion.close() print("Usuario agregado exitosamente.")

📌 Explicación:
✅ INSERT INTO usuarios (...) VALUES (?, ?, ?) → Inserta datos en la tabla.
✅ Los signos ? evitan ataques SQL Injection.
✅ conexion.commit() → Guarda los cambios.

📌 Para insertar múltiples registros:

datos = [ ("Ana", 30, "ana@example.com"), ("Carlos", 28, "carlos@example.com"), ("Laura", 22, "laura@example.com") ] cursor.executemany("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", datos) conexion.commit() print("Usuarios agregados.")

✅ Ideal para insertar muchos datos al mismo tiempo.


5️⃣ Consultar Datos en SQLite

📌 Ejemplo: Leer y mostrar todos los usuarios de la base de datos:

conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM usuarios") usuarios = cursor.fetchall() for usuario in usuarios: print(usuario) conexion.close()

📌 Salida esperada:

(1, 'José', 25, 'jose@example.com') (2, 'Ana', 30, 'ana@example.com') (3, 'Carlos', 28, 'carlos@example.com')

✅ fetchall() recupera todos los registros.
✅ El resultado es una lista de tuplas con los datos.

📌 Para buscar un usuario específico:

cursor.execute("SELECT * FROM usuarios WHERE nombre = ?", ("Carlos",)) usuario = cursor.fetchone() print(usuario)

✅ fetchone() devuelve un solo resultado.


6️⃣ Actualizar y Eliminar Datos en SQLite

📌 Ejemplo: Actualizar la edad de un usuario:

cursor.execute("UPDATE usuarios SET edad = ? WHERE nombre = ?", (26, "José")) conexion.commit() print("Edad actualizada.")

📌 Ejemplo: Eliminar un usuario:

cursor.execute("DELETE FROM usuarios WHERE nombre = ?", ("Ana",)) conexion.commit() print("Usuario eliminado.")

✅ Siempre usa commit() después de UPDATE o DELETE.


🚀 Conclusión

✅ SQLite permite almacenar datos de forma estructurada en Python.
✅ Podemos crear, insertar, actualizar y eliminar registros usando SQL.
✅ Ideal para proyectos pequeños y medianos sin necesidad de un servidor externo.

📌 Próximo post: Ejercicios prácticos con bases de datos SQLite en Python.

📂 Código disponible en mi GitHub: github.com/josecodetech

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

💬 ¿Ya has trabajado con bases de datos en Python? ¿Cuál ha sido tu experiencia? Coméntamelo.



sábado, 15 de febrero de 2025

👉 Crear una API con Python: Introducción a Flask

Hasta ahora hemos aprendido a manejar archivos y bases de datos en Python. Pero, ¿cómo podemos conectar nuestra aplicación con otros sistemas o aplicaciones web? La respuesta es: crear una API (Interfaz de Programación de Aplicaciones).

Hoy aprenderás:
✔️ ¿Qué es una API y por qué es importante?
✔️ Cómo instalar y usar Flask en Python
✔️ Crear una API simple con Flask
✔️ Ejemplo práctico paso a paso


1️⃣ ¿Qué es una API y por qué es importante?

Una API (Application Programming Interface) es un conjunto de reglas que permite a dos aplicaciones comunicarse entre sí.

📌 Ejemplos de APIs en la vida real:
✅ Una app de clima obtiene datos del tiempo de una API de meteorología.
✅ Un sitio web de pago usa una API de PayPal para procesar transacciones.
✅ Una aplicación móvil obtiene datos de una base de datos a través de una API.

En Python, podemos crear una API con Flask, un framework ligero y fácil de usar.


2️⃣ Instalar Flask en Python

Antes de empezar, instala Flask ejecutando el siguiente comando en tu terminal:

pip install flask

3️⃣ Crear una API Simple con Flask

Ahora, vamos a crear un servidor con Flask que devuelva un mensaje cuando accedamos a una ruta específica.

🔹 Código básico de una API en Flask

from flask import Flask app = Flask(__name__) @app.route('/') def inicio(): return {"mensaje": "¡Hola, bienvenido a mi API en Flask!"} if __name__ == '__main__': app.run(debug=True)

📌 Explicación:
✅ Flask(__name__) → Crea una instancia de Flask.
✅ @app.route('/') → Define una ruta para la API ("/" es la página principal).
✅ return {"mensaje": "Hola"} → Devuelve un JSON con un mensaje.
✅ app.run(debug=True) → Inicia el servidor en modo de desarrollo.

📌 Para probar la API:
1️⃣ Guarda el código en un archivo api.py.
2️⃣ Ejecuta python api.py.
3️⃣ Abre un navegador y visita http://127.0.0.1:5000/.

📌 Salida esperada en el navegador:

{"mensaje": "¡Hola, bienvenido a mi API en Flask!"}

4️⃣ Crear una API con Rutas Dinámicas

Podemos mejorar nuestra API permitiendo parámetros en la URL.

from flask import Flask app = Flask(__name__) @app.route('/saludo/<nombre>') def saludo(nombre): return {"mensaje": f"Hola, {nombre}! Bienvenido a la API."} if __name__ == '__main__': app.run(debug=True)

📌 Prueba la API en tu navegador visitando:
👉 http://127.0.0.1:5000/saludo/José

📌 Salida esperada:

{"mensaje": "Hola, José! Bienvenido a la API."}

✅ <nombre> permite recibir un valor dinámico desde la URL.


5️⃣ Enviar y Recibir Datos con POST en Flask

A veces, necesitamos recibir datos desde una aplicación externa. Para esto, usamos métodos HTTP, como POST.

🔹 Ejemplo: Recibir datos con POST

from flask import Flask, request app = Flask(__name__) @app.route('/sumar', methods=['POST']) def sumar(): datos = request.get_json() resultado = datos['a'] + datos['b'] return {"resultado": resultado} if __name__ == '__main__': app.run(debug=True)

📌 Cómo probarlo:
Usa Postman o ejecuta este comando en la terminal:

curl -X POST http://127.0.0.1:5000/sumar -H "Content-Type: application/json" -d '{"a": 5, "b": 3}'

📌 Salida esperada:

{"resultado": 8}

✅ request.get_json() → Recibe datos en formato JSON desde una petición POST.
✅ Se suman los valores y se devuelve un JSON con el resultado.


6️⃣ Conectar Flask con una Base de Datos SQLite

Podemos conectar nuestra API con una base de datos para almacenar información.

🔹 Ejemplo: API con SQLite para manejar usuarios

from flask import Flask, request, jsonify import sqlite3 app = Flask(__name__) # Crear base de datos conexion = sqlite3.connect("usuarios.db", check_same_thread=False) cursor = conexion.cursor() cursor.execute("CREATE TABLE IF NOT EXISTS usuarios (id INTEGER PRIMARY KEY, nombre TEXT)") conexion.commit() @app.route('/usuarios', methods=['POST']) def agregar_usuario(): datos = request.get_json() cursor.execute("INSERT INTO usuarios (nombre) VALUES (?)", (datos['nombre'],)) conexion.commit() return jsonify({"mensaje": "Usuario agregado con éxito"}), 201 @app.route('/usuarios', methods=['GET']) def obtener_usuarios(): cursor.execute("SELECT * FROM usuarios") usuarios = cursor.fetchall() return jsonify({"usuarios": usuarios}) if __name__ == '__main__': app.run(debug=True)

📌 Explicación:
✅ Se crea una base de datos SQLite llamada usuarios.db.
✅ POST /usuarios → Permite agregar un usuario.
✅ GET /usuarios → Devuelve la lista de usuarios almacenados.


🚀 Conclusión

Hoy aprendimos a crear una API con Flask en Python, desde lo más básico hasta integrar una base de datos.

✅ Flask es un framework ligero para construir APIs en Python.
✅ Podemos definir rutas dinámicas y recibir datos mediante POST.
✅ Podemos conectar nuestra API con una base de datos SQLite.

En el próximo post, veremos cómo desplegar nuestra API en la nube usando servicios como Heroku o Render. ¡No te lo pierdas!

📂 Descarga ejemplos y ejercicios en mi GitHub: github.com/josecodetech

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

💬 Déjame un comentario si tienes dudas o quieres que cubra algún tema en detalle.