Tutorial de Flask
Como profesor de ciencias de la computación en la universidad, me doy cuenta de que el aprendizaje de nuevas habilidades de programación puede ser un desafío. Es por eso que creé este tutorial de Flask con ejemplos prácticos para ayudar a explicar cómo funciona esta librería y cómo puede usarse para desarrollar aplicaciones web de calidad profesional. Asumo que ya tienes cierto conocimiento en Python, lo cual es excelente porque Flask se basa en Python.
¿Qué es Flask?
Flask es un micro framework para Python basado en Werkzeug y Jinja 2 que se utiliza para desarrollar aplicaciones web. Es conocido por su simplicidad y la pequeña cantidad de abstracción de la base de código de Python.
Ventajas de utilizar Flask
- Es ligero y modular, lo que significa que puede agregar más funcionalidad si la necesita.
- Su estructura hace que sea fácil de aprender para los nuevos desarrolladores.
- Es perfecto para configuraciones personalizadas de aplicaciones web, ya que no impone ninguna estructura o reglas particulares.
- Permite el desarrollo de aplicaciones de una sola página y aplicaciones más tradicionales.
Cómo comenzar
Antes de comenzar a usar Flask, debe tener Python 3 y pip (el administrador de paquetes de Python) instalados en su computadora. Aquí hay una breve guía para instalar Flask:
Instalación de Flask:
$ pip install flask
Este tutorial está diseñado para ser una introducción práctica y fácil de entender a Flask. Cada lección incluirá ejemplos de código y explicaciones detalladas para asegurarme de que comprendas completamente cómo funciona Flask. Es hora de sumergirte en el mundo de Flask y mejorar tu desarrollo web en Python. ¡Empecemos!
Lección 1: Tu primera aplicación Flask
Vamos a empezar con algo simple, eso es, crear una aplicación Flask básica. Un programa flask es básicamente una instancia de la clase Flask que actúa como servidor web y que espera solicitudes HTTP del cliente, proporcionando una respuesta HTTP.
Paso 1: Importar la librería Flask
En primer lugar, necesitamos importar la clase Flask de la librería flask. Esto se hace con la siguiente línea de código:
from flask import Flask
Paso 2: Crear una instancia de la clase Flask
A continuación, creamos una instancia de esta clase. Puedes llamar a la variable que contiene la instancia en como quieras, pero generalmente se le llama "app".
app = Flask(__name__)
Paso 3: Definir las rutas
Las rutas en Flask son asociaciones entre una URL y una función. Aquí definimos una ruta para la URL raíz ("/") de nuestra aplicación.
@app.route('/')
def index():
return '¡Hola, mundo!'
Paso 4: Ejecutar la aplicación
Por último, llamamos al método run() de nuestra instancia de Flask para ejecutar la aplicación en un servidor local.
if __name__ == "__main__":
app.run()
Felicidades! Ya tienes tu primera aplicación Flask. En lecciones futuras, aprenderemos más sobre las rutas, así como los métodos HTTP, plantillas y bases de datos. ¡Hasta la próxima!
Lección 2: Probar tu aplicación Flask
Una vez que hayas escrito tu código, el siguiente paso es probar tu aplicación. Asegurarte de que tu aplicación funciona como esperas es una parte esencial del desarrollo de software. Por suerte, Flask hace que sea muy fácil probar tu aplicación.
Paso 1: Ejecuta tu aplicación
Dependiendo de cómo hayas configurado tu entorno, hay diferentes maneras de hacer esto. Pero la forma más simple es simplemente usar la terminal. Navega hasta el directorio donde se encuentra el archivo de tu aplicación y ejecútalo con Python.
$ python nombre_de_tu_archivo.py
Paso 2: Abre tu navegador
En tu navegador, ve a la siguiente URL:
Deberías ver "¡Hola, mundo!" en tu navegador, lo que significa que tu aplicación está funcionando correctamente. Si ocurre algún error, asegúrate de haber seguido todos los pasos correctamente. El servidor debería proporcionar información útil sobre qué fue lo que salió mal.
Paso 3: Prueba diferentes URLs
Una vez que hayas verificado que tu aplicación se está ejecutando, puedes probar a implementar y probar otras URL y ver el resultado. Esto te ayudará a familiarizarte con la forma en que Flask maneja las rutas y las solicitudes HTTP.
Probar tu aplicación y resolver los problemas que puedan surgir es una habilidad que desarrollarás con el tiempo. Ten paciencia contigo mismo y con el proceso, y recuerda que la práctica hace al maestro. ¡Buena suerte con tu aprendizaje de Flask!
plantillas en Flask
En la mayoría de las aplicaciones web, quieres poder mostrar contenido que cambie en función de lo que el usuario esté haciendo. Flask hace uso del motor de plantillas Jinja2 para permitirte crear respuestas HTML dinámicas a las solicitudes de los usuarios.
Paso 1: Crear una plantilla básica
Las plantillas de Jinja2 son simplemente archivos de texto que pueden contener variables de Python. Cuando Flask procesa una plantilla, reemplaza las variables de la plantilla con valores reales.
Guarda este archivo HTML en una nueva carpeta llamada "plantillas" en el mismo directorio que tu script principal de Flask:
<!DOCTYPE html>
<html>
<body>
<h2>Bienvenido, {{ nombre }}!</h2>
</body>
</html>
Paso 2: Usar la plantilla en tu aplicación Flask
En tu código de Flask, puedes usar la función render_template()
para enviar un archivo de plantilla HTML como respuesta a una solicitud. Aquí se explica cómo podrías modificar el código de Flask que escribiste en la Lección 1 para hacerlo:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/hola/')
def hola(nombre):
return render_template('hola.html', nombre=nombre)
if __name__ == "__main__":
app.run()
Ahora, si visitas http://127.0.0.1:5000/hola/tunombre
en tu navegador, deberías ver una página que dice "¡Hola, tunombre!". Flask toma la variable nombre
de la URL y la pasa a la plantilla para crear la respuesta HTML.
Las plantillas son una herramienta imprescindible para crear sitios web dinámicos con Flask. En la próxima lección, abordaremos cómo interactuar con bases de datos para hacer que nuestros sitios web sean aún más interactivos. ¡Nos vemos en la próxima lección!
Lección 4: Flask y las bases de datos
Las bases de datos son una parte esencial de muchas aplicaciones web. En esta lección, enseñaremos cómo interactuar con una base de datos SQLite desde Flask utilizando la extensión flask_sqlalchemy
.
Paso 1: Configurar la base de datos
Primero, instala flask_sqlalchemy
y sqlite3
con pip:
$ pip install flask_sqlalchemy sqlite3
Después, configura la ubicación de tu base de datos en tu aplicación Flask:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
Paso 2: Define tu modelo de datos
En SQLAlchemy, defines tus tablas de datos como clases:
class Usuario(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<Usuario {self.username}>'
Paso 3: Crear y consultar datos
Una vez que has definido tus modelos, puedes empezar a crear y consultar datos:
@app.route('/')
def index():
# Crear un nuevo usuario
usuario = Usuario(username='flask', email='flask@example.com')
db.session.add(usuario)
db.session.commit()
# Consultar todos los usuarios
usuarios = Usuario.query.all()
return ', '.join(usuario.username for usuario in usuarios)
Visita tu aplicación en http://127.0.0.1:5000
y deberías ver una lista de todos los nombres de usuario en tu base de datos (en este caso, solo 'flask'). Puedes usar SQLAlchemy para hacer consultas más complejas cuando sea necesario.
Espero que este primer encuentro con Flask y las bases de datos te haya orientado en la dirección correcta. En la próxima lección, trataremos temas como autenticación y manejo de sesiones. ¡Nos vemos en la próxima lección!