def fazer_consulta(): if (str(request.form['matricula']).isnumeric()): matricula = int(request.form['matricula']) if Database.find_one('alunos', {'_id': matricula}) is not None: aluno = Aluno.from_mongo(matricula) nome = aluno.nome calculo = (aluno.p1 + aluno.p2 + aluno.p3) / 3 media = round(calculo, 1) if (media >= 5): return render_template("aprovado.html", nome=nome, p1=aluno.p1, p2=aluno.p2, p3=aluno.p3, media=media) else: return render_template("reprovado.html", nome=nome, p1=aluno.p1, p2=aluno.p2, p3=aluno.p3, media=media) else: return render_template("invalido.html") else: return render_template("invalido.html")
def from_mongo(cls, _id): #método de busca que retorna objeto da classe Aluno dados_aluno = Database.find_one(collection='alunos', query={'_id': _id}) return cls(nome=dados_aluno['nome'], p1=dados_aluno['p1'], p2=dados_aluno['p2'], p3=dados_aluno['p3'], _id=dados_aluno['_id'])
def __init__(self, nome, p1, p2, p3, _id=None): #método inicializador self.nome = nome self.p1 = p1 self.p2 = p2 self.p3 = p3 if _id is None: id_gerado = random.randrange(5000000, 9000000) while ( Database.find_one('alunos', {'_id': id_gerado}) is not None ): #Certificando que não haverão dois estudantes com mesma matrícula id_gerado = random.randrange(5000000, 9000000) self._id = id_gerado else: self._id = _id
'''aplicativo base, que pega input de um número de matrícula, acessa o banco de dados, e retorna a média de alunos no console. Esse código base serve apenas para demonstrar o processamento presente no aplicativo em flask caso não seja possível acessar o app via web.''' from classes.database import Database from classes.alunos import Aluno Database.initialize() matricula = int(input("Digite o número de matrícula: ")) if (Database.find_one('alunos', {'_id': matricula}) is not None): aluno = Aluno.from_mongo(matricula) nome = aluno.nome media = (aluno.p1 + aluno.p2 + aluno.p3) / 3 if (media >= 5): print('O aluno(a) {} foi aprovado(a) com média {:.1f}'.format( nome, media)) else: print('O aluno(a) {} foi reprovado(a) com média {:.1f}'.format( nome, media)) else: print('A matrícula não existe!')