Desarrolla una Aplicación CRUD con Flask y SQLite en Python Paso a Paso

Desarrolla una Aplicación CRUD con Flask y SQLite en Python Paso a Paso

Tutorial Flask: Construye una Aplicación Web CRUD con SQLite y Python

Bienvenido a este tutorial detallado para desarrolladores principiantes e intermedios interesados en crear una aplicación CRUD (Crear, Leer, Actualizar, Eliminar) utilizando Flask y SQLite en Python. Aquí aprenderás paso a paso cómo configurar tu entorno, definir rutas, integrar la base de datos con SQLAlchemy, manejar formularios con validación y desplegar tu proyecto básico. Este tutorial es ideal para quienes desean profundizar en el desarrollo backend y la programación web con Python.


Tabla de contenidos

  1. Configuración del entorno
  2. Creación del proyecto Flask
  3. Configuración y conexión a SQLite con SQLAlchemy
  4. Definición de rutas y vistas CRUD
  5. Manejo de formularios y validación
  6. Despliegue básico de la aplicación
  7. Conclusión y buenas prácticas

Configuración del entorno

Antes de comenzar, asegúrate de tener instalado Python 3.6 o superior. Vamos a crear un entorno virtual para mantener las dependencias aisladas.

Paso 1: Crear y activar un entorno virtual

Paso 2: Instalar Flask y dependencias

  • Flask: microframework para desarrollo web.
  • Flask-SQLAlchemy: ORM que facilita la integración con bases de datos.
  • Flask-WTF: gestión y validación de formularios.

Creación del proyecto Flask

Crea un proyecto nuevo con una estructura básica:

Explicación:

  • app.py: archivo principal donde definiremos nuestra app Flask.
  • config.py: configuraciones generales.
  • templates/: contiene los archivos HTML de las vistas.
  • static/: para archivos estáticos como CSS.

Configuración y conexión a SQLite con SQLAlchemy

Paso 1: Crear el archivo config.py

  • El SECRET_KEY es necesario para gestionar la seguridad de formularios.
  • La base de datos SQLite estará en el archivo app.db.

Paso 2: Inicializar Flask y SQLAlchemy en app.py


Definición de rutas y vistas CRUD

Paso 1: Crear el modelo de datos

En el archivo app.py, definiremos un modelo simple, por ejemplo, una lista de tareas (Task).

Paso 2: Crear la base de datos

Abre una terminal con el entorno virtual activado y ejecuta:

Esta acción crea el archivo app.db con la tabla Task.

Paso 3: Definir rutas y vistas para cada operación CRUD

Vamos a crear las rutas básicas:

  • Listado de tareas – Leer: /
  • Crear tarea: /create
  • Actualizar tarea: /edit/<id>
  • Eliminar tarea: /delete/<id>

Código completo de rutas en app.py


Manejo de formularios y validación

Utilizaremos Flask-WTF para crear y validar formularios de manera sencilla.

Paso 1: Definir formulario en app.py

  • DataRequired: obliga a que el campo title no quede vacío.

Paso 2: Crear las plantillas HTML dentro de templates/

A continuación te mostramos los archivos HTML con comentarios.

templates/base.html

templates/index.html

templates/create.html

templates/edit.html

Muy similar a create.html, permitiendo actualizar una tarea:


Despliegue básico de la aplicación

Para ejecutar nuestra aplicación de forma local, basta ejecutar:

Esto ejecutará el servidor Flask en http://127.0.0.1:5000/. Navega a esa URL en tu navegador.

Para un despliegue básico en un entorno de producción (no detallado aquí), puedes considerar:

  • Usar un servidor web WSGI como Gunicorn o uWSGI.
  • Servir la aplicación detrás de un proxy reverso como Nginx.
  • Configurar variables de entorno para el SECRET_KEY y configuraciones sensibles.

Comando Gunicorn ejemplo (Linux/macOS)

Donde:

  • -w 4: usa 4 trabajadores.
  • -b: bind, dirección IP y puerto.

Conclusión y buenas prácticas

En este tutorial has aprendido a:

  • Configurar un entorno virtual y dependencias con Flask, SQLAlchemy y Flask-WTF.
  • Crear una aplicación web básica con Flask.
  • Definir un modelo de datos para SQLite con SQLAlchemy.
  • Crear rutas y vistas para operaciones CRUD.
  • Manejar formularios y validar entradas con Flask-WTF.
  • Desplegar la app localmente y conocer opciones básicas para producción.

Buenas prácticas recomendadas

  • Mantén tu SECRET_KEY seguro y no lo subas a repositorios públicos.
  • Organiza el proyecto por módulos si crece (usar Blueprints).
  • Implementa manejo de errores y validaciones más robustas.
  • Usa migraciones con Flask-Migrate para administrar cambios en BD.
  • Asegúrate de validar y sanear todas las entradas de usuarios.
  • Implementa pruebas unitarias para asegurar estabilidad.

¡Ahora estás listo para crear aplicaciones web robustas y escalables con Python! Si quieres profundizar más, explora autenticación de usuarios, APIs REST y frameworks frontend para complementar tu aplicación.


¿Te ha gustado este tutorial Flask?

No olvides guardar este artículo, compartirlo con otros desarrolladores y seguir aprendiendo programación web Python con proyectos prácticos. ¡Manos a la obra!