Desarrollo de una API con Flask en Python: Tutorial completo
Introducción
En este tutorial, aprenderás a desarrollar una API REST con Flask, un microframework de Python para crear aplicaciones web. Una API REST es una interfaz que permite a los usuarios interactuar con un servicio web a través de solicitudes HTTP.
Requisitos
Para seguir este tutorial, necesitarás lo siguiente:
- Un editor de texto o IDE
- Python 3
- La biblioteca Flask
- Una base de datos (opcional)
Creación del proyecto
Para empezar, crea un nuevo directorio para tu proyecto y accede a él:
mkdir api-flask
cd api-flask
Ahora, crea un archivo llamado app.py
y agrega el siguiente código:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hola, mundo!"
if __name__ == "__main__":
app.run()
Este código crea una aplicación Flask básica con una ruta que responde con el mensaje «Hola, mundo!».
Creación de una base de datos
Para almacenar datos en nuestra API, podemos usar una base de datos. En este tutorial, usaremos la base de datos SQLite.
Para crear una base de datos SQLite, ejecuta el siguiente comando:
sqlite3 db.sqlite3
Ahora, crea una tabla llamada users
con los siguientes campos:
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(255),
email VARCHAR(255),
password VARCHAR(255)
);
Conexión a la base de datos
Para conectarnos a la base de datos, usaremos la biblioteca SQLAlchemy.
Importa la biblioteca SQLAlchemy:
from sqlalchemy import create_engine
Crea una instancia de la clase create_engine()
para conectarte a la base de datos SQLite:
engine = create_engine("sqlite:///db.sqlite3")
Creación de modelos
Un modelo es una representación de una tabla de base de datos en Python.
Importa la clase Model
de SQLAlchemy:
from sqlalchemy.ext.declarative import declarative_base
Crea una clase base para tus modelos:
Base = declarative_base()
Crea una clase modelo para la tabla users
:
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String(255))
email = Column(String(255))
password = Column(String(255))
def __repr__(self):
return f"<User(id={self.id}, name={self.name}, email={self.email}, password={self.password})>"
Creación de rutas
Una ruta es un punto de entrada a una API REST.
Para crear una ruta, usa la función route()
de Flask.
La siguiente ruta responde con una lista de todos los usuarios:
@app.route("/users")
def get_users():
users = User.query.all()
return jsonify([user.to_dict() for user in users])
La siguiente ruta crea un nuevo usuario:
@app.route("/users", methods=["POST"])
def create_user():
data = request.get_json()
user = User(name=data["name"], email=data["email"], password=data["password"])
db.session.add(user)
db.session.commit()
return jsonify(user.to_dict())
Ejecución de la aplicación
Para ejecutar la aplicación, ejecuta el siguiente comando:
flask run
La aplicación se ejecutará en el puerto 5000.
Pruebas de la API
Para probar la API, puedes usar un cliente HTTP como Postman o Insomnia.
Conclusión
En este tutorial, aprendiste a desarrollar una API REST con Flask. Puedes usar este tutorial como punto de