Conexión a MongoDB desde Python: Creación de una API
En este tutorial, aprenderemos a conectarnos a MongoDB desde Python y crear una API REST para acceder a los datos de la base de datos.
Requisitos
- Python 3
- MongoDB
- Flask
- pip
Paso 1: Instalar dependencias
Para instalar las dependencias necesarias, ejecuta los siguientes comandos en la terminal:
pip install pymongo
pip install flask
Paso 2: Crear una base de datos
Para crear una base de datos en MongoDB, puedes usar la consola de administración o la API. En este tutorial, usaremos la consola de administración.
Inicia la consola de administración de MongoDB y crea una nueva base de datos llamada my_database
:
use my_database
Paso 3: Crear una colección
Una colección es un grupo de documentos en MongoDB. Para crear una colección en my_database
, ejecuta el siguiente comando:
db.createCollection("my_collection")
Paso 4: Crear un documento
Un documento es una unidad de datos en MongoDB. Para crear un documento en my_collection
, ejecuta el siguiente comando:
db.my_collection.insertOne({"name": "John Doe"})
Paso 5: Conectarse a MongoDB desde Python
Para conectarnos a MongoDB desde Python, usaremos el controlador pymongo
.
Importa el controlador pymongo
:
from pymongo import MongoClient
Crea un cliente de MongoDB:
client = MongoClient("mongodb://localhost:27017")
Elige la base de datos:
db = client.my_database
Paso 6: Crear una API REST
Usaremos el framework Flask para crear una API REST.
Crea un nuevo archivo llamado app.py
y agrega el siguiente código:
from flask import Flask, request
from pymongo import MongoClient
app = Flask(__name__)
@app.route("/")
def index():
return "Hello, world!"
@app.route("/api/users", methods=["GET", "POST"])
def users():
if request.method == "GET":
users = db.my_collection.find()
return jsonify(users)
elif request.method == "POST":
data = request.get_json()
db.my_collection.insertOne(data)
return jsonify({"message": "User created successfully"})
if __name__ == "__main__":
app.run(debug=True)
Este código crea un endpoint /api/users
que admite las solicitudes GET
y POST
.
Prueba la API
Para probar la API, ejecuta el siguiente comando:
python app.py
Abre un navegador y visita la siguiente URL:
http://localhost:5000
Verás el siguiente mensaje:
Hello, world!
Para probar el endpoint /api/users
, envía una solicitud GET
a la siguiente URL:
http://localhost:5000/api/users
Verás una respuesta JSON con la lista de usuarios en la base de datos.
Para probar el endpoint /api/users
con una solicitud POST
, envía una solicitud POST
a la siguiente URL con los datos del usuario en el cuerpo de la solicitud:
http://localhost:5000/api/users
El cuerpo de la solicitud debe ser un JSON con la siguiente estructura:
{
"name": "John Doe"
}
Verás una respuesta JSON con el mensaje «User created successfully».
Conclusión
En este tutorial, aprendimos a conectarnos a MongoDB desde Python y crear una API REST para acceder a los datos de la base de datos.
Para obtener más información, consulta la documentación de pymongo
y Flask
.