0% acharam este documento útil (0 voto)
1 visualizações26 páginas

Aula04 - MongoDB e Python

O documento aborda a integração do MongoDB com Python, ensinando a conectar, realizar operações CRUD usando PyMongo e criar uma API REST com Flask ou FastAPI. Inclui exemplos práticos de código para inserção, consulta, atualização e exclusão de documentos, além de como testar as requisições no Postman. Ao final, o aluno deve ser capaz de relacionar a aplicação, a API e o banco de dados NoSQL.

Enviado por

paulonunes
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
1 visualizações26 páginas

Aula04 - MongoDB e Python

O documento aborda a integração do MongoDB com Python, ensinando a conectar, realizar operações CRUD usando PyMongo e criar uma API REST com Flask ou FastAPI. Inclui exemplos práticos de código para inserção, consulta, atualização e exclusão de documentos, além de como testar as requisições no Postman. Ao final, o aluno deve ser capaz de relacionar a aplicação, a API e o banco de dados NoSQL.

Enviado por

paulonunes
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Laboratório de Banco de

Dados
Integração MongoDB com Python e construção de API
RESTPyMongo, Flask/FastAPI e Postman
Objetivos
Ao final da aula, você deverá ser capaz de:

• conectar Python ao MongoDB;


• executar operações CRUD com PyMongo;
• entender o papel de uma API REST;
• criar endpoints básicos;
• testar requisições no Postman;
• relacionar aplicação, API e banco NoSQL.

28/04/2026 Professor Paulo Nunes 2


Arquitetura geral da solução

Cliente API REST Python PyMongo MongoDB

Exemplo:
• Postman envia uma requisição HTTP
• Flask/FastAPI recebe a requisição
• PyMongo executa a operação no MongoDB
• MongoDB retorna os dados
• API devolve resposta em JSON
28/04/2026 Professor Paulo Nunes 3
Preparação do ambiente
Ferramentas: Comandos iniciais:

• Python 3 • python –version


• VS Code • pip –version
• MongoDB Community Server • pip install pymongo flask
• MongoDB Compass
• PyMongoFlask ou
FastAPIPostman

28/04/2026 Professor Paulo Nunes 4


Banco de exemplo: sistema acadêmico
• Database: lab_bd Documento exemplo:
• Collection: alunos
{
"nome": "Ana Beatriz",
"matricula": "2026001",
"curso": "ADS",
"semestre": 2,
"media": 8.5,
"ativo": true
}

28/04/2026 Professor Paulo Nunes 5


Conectando Python ao MongoDB
Código:

from pymongo import MongoClient

cliente = MongoClient("mongodb://localhost:27017/")
banco = cliente["lab_bd"]
colecao = banco["alunos"]
print("Conexão realizada com sucesso!")

28/04/2026 Professor Paulo Nunes 6


Inserindo um documento com PyMongo
Código:

aluno = {
"nome": "Ana Beatriz",
"matricula": "2026001",
"curso": "ADS",
"semestre": 2,
"media": 8.5,
"ativo": True
}
resultado = colecao.insert_one(aluno)
print(resultado.inserted_id)
28/04/2026 Professor Paulo Nunes 7
Inserindo vários documentos
Código:
alunos = [
{"nome": "Carlos Lima", "matricula": "2026002", "curso": "ADS",
"semestre": 1, "media": 7.2, "ativo": True},
{"nome": "Marina Souza", "matricula": "2026003", "curso": "SI",
"semestre": 3, "media": 9.1, "ativo": True},
{"nome": "João Pedro", "matricula": "2026004", "curso": "ADS",
"semestre": 2, "media": 5.8, "ativo": False}
]
resultado = colecao.insert_many(alunos)
print(resultado.inserted_ids)

28/04/2026 Professor Paulo Nunes 8


Consultando documentos
Código:

for aluno in [Link]():


print(aluno)

Consulta com filtro:


for aluno in [Link]({"curso": "ADS"}):
print(aluno)

28/04/2026 Professor Paulo Nunes 9


Consultas com operadores
Código:
for aluno in [Link]({"media": {"$gte": 7}}):
print(aluno)

Operadores comuns:

$gt maior que


$gte maior ou igual
$lt menor que
$lte menor ou igual
$ne diferente
$in dentro de uma lista

28/04/2026 Professor Paulo Nunes 10


Exercício rápido:
Crie uma consulta que liste apenas alunos com média menor que
6.

Resposta esperada:

[Link]({"media": {"$lt": 6}})

28/04/2026 Professor Paulo Nunes 11


Atualizando documentos
Código:

colecao.update_one(
{"matricula": "2026004"},
{"$set": {"media": 6.5, "ativo": True}}
)

28/04/2026 Professor Paulo Nunes 12


Excluindo documentos
Código:

colecao.delete_one({"matricula": "2026004"})

Exclusão múltipla:

colecao.delete_many({"ativo": False})

28/04/2026 Professor Paulo Nunes 13


Tratamento de erros
Código:

try:
cliente = MongoClient("mongodb://localhost:27017/",
serverSelectionTimeoutMS=3000)
cliente.server_info()
print("Conectado ao MongoDB")
except Exception as erro:
print("Erro ao conectar:", erro)

28/04/2026 Professor Paulo Nunes 14


O que é uma API REST?
API REST é uma interface que permite comunicação entre
sistemas usando HTTP.

Métodos principais:

GET: consultar dados


POST: cadastrar dados
PUT/PATCH: atualizar dados
DELETE: excluir dados

28/04/2026 Professor Paulo Nunes 15


Criando a primeira API com Flask
• Código:

from flask import Flask, jsonify

app = Flask(name)

@[Link]("/")
def home():
return jsonify({"mensagem": "API de alunos funcionando"})

[Link](debug=True)

28/04/2026 Professor Paulo Nunes 16


Integrando Flask com MongoDB
Código: @[Link]("/alunos",
from flask import Flask, jsonify methods=["GET"])
from pymongo import def listar_alunos():
MongoClient alunos = []
for aluno in [Link]():
app = Flask(name) aluno["_id"] = str(aluno["_id"])
cliente = [Link](aluno)
MongoClient("mongodb://localh return jsonify(alunos)
ost:27017/") [Link](debug=True)
banco = cliente["lab_bd"]
colecao = banco["alunos"]
28/04/2026 Professor Paulo Nunes 17
Criando aluno via POST
Código:
from flask import request
@[Link]("/alunos", methods=["POST"])
def cadastrar_aluno():
dados = [Link]
resultado = colecao.insert_one(dados)
return jsonify({
"mensagem": "Aluno cadastrado com sucesso",
"id": str(resultado.inserted_id)
}), 201

28/04/2026 Professor Paulo Nunes 18


Buscando aluno por matrícula
Código:
@[Link]("/alunos/<matricula>", methods=["GET"])
def buscar_aluno(matricula):
aluno = colecao.find_one({"matricula": matricula})

if aluno:
aluno["_id"] = str(aluno["_id"])
return jsonify(aluno)

return jsonify({"erro": "Aluno não encontrado"}), 404

28/04/2026 Professor Paulo Nunes 19


Atualizando aluno
Código:
@[Link]("/alunos/<matricula>", methods=["PUT"])
def atualizar_aluno(matricula):
dados = [Link]
resultado = colecao.update_one(
{"matricula": matricula},
{"$set": dados}
)

if resultado.matched_count == 0:
return jsonify({"erro": "Aluno não encontrado"}), 404

return jsonify({"mensagem": "Aluno atualizado com sucesso"})

28/04/2026 Professor Paulo Nunes 20


Excluindo aluno
Código:
@[Link]("/alunos/<matricula>", methods=["DELETE"])
def excluir_aluno(matricula):
resultado = colecao.delete_one({"matricula": matricula})
if resultado.deleted_count == 0:
return jsonify({"erro": "Aluno não encontrado"}), 404

return jsonify({"mensagem": "Aluno excluído com sucesso"})

28/04/2026 Professor Paulo Nunes 21


Testando no Postman
Testes: Exemplo de JSON para POST:

GET /alunos {
GET /alunos/2026001 "nome": "Lucas Martins",
POST /alunos "matricula": "2026005",
PUT /alunos/2026001 "curso": "ADS",
DELETE /alunos/2026001 "semestre": 1,
"media": 8.0,
"ativo": true
}

28/04/2026 Professor Paulo Nunes 22


Exercício guiado 1
• Crie uma rota GET /alunos/aprovados
• A rota deve retornar alunos com média maior ou igual a 7.

28/04/2026 Professor Paulo Nunes 23


Exercício guiado 2
• Crie uma rota GET /alunos/curso/<curso>
• A rota deve listar alunos de um curso específico.

28/04/2026 Professor Paulo Nunes 24


Exercício guiado 3
• Crie uma rota PATCH /alunos/<matricula>/media
• A rota deve atualizar apenas a média do aluno.

28/04/2026 Professor Paulo Nunes 25


Fechamento da aula
Nesta aula vimos:

• conexão Python + MongoDB;


• CRUD com PyMongo;
• criação de API REST;
• rotas GET, POST, PUT, PATCH e DELETE;
• testes com Postman;
• integração entre aplicação e banco NoSQL.

28/04/2026 Professor Paulo Nunes 26

Você também pode gostar