Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

117
Visualizações
Frasco y MongoDB - For Loop no funciona

Tener esto para Flask:

 example = mongo.db.example got_name = example.find({'name':1}) got_lastname = example.find({'lastname':1}) details = {'name' : got_name, 'lastname' : got_lastname} return render_template('blabla.html', details=details)

Luego, el bucle for usando Jinja en mi HTML (queriendo que sea una tabla):

 {% for x in details} <tr> <td>{{ x.['name'] }}</td> <td>{{ x.['lastname'] }}</td> </tr> {% endfor %}

Pero no funcionará, no muestra nada en mi tabla. Escribí este ejemplo arriba ahora, pero mi código es similar.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Es posible que desee utilizar find_one() en lugar de find() que devuelve un cursor a los documentos que coinciden con los criterios. find_one() devuelve un solo documento que luego se puede usar en el diccionario, en lugar de un cursor:

 example = mongo.db.example doc = example.find_one() details = { 'name' : doc['name'], 'lastname' : doc['lastname'] } return render_template('blabla.html', details=details)

O

 example = mongo.db.example details = example.find_one({}, {'name':1, 'lastname':1}) return render_template('blabla.html', details=details)

Y tu plantilla será

 <tr> <td>{{ details['name'] }}</td> <td>{{ details['lastname'] }}</td> </tr>

Si desea iterar toda la colección y devolver una lista de documentos con solo los campos de name y lastname , entonces debe usar el método find() . Si tiene un conjunto de datos relativamente pequeño, el siguiente código convertirá todo el conjunto de resultados (Cursor) en una lista (todo se almacena en la memoria):

 example = mongo.db.example details = list(example.find({}, {'name': 1, 'lastname': 1})) return render_template('blabla.html', details=details)

Luego repite la lista en tu plantilla

 {% for doc in details} <tr> <td>{{ doc['name'] }}</td> <td>{{ doc['lastname'] }}</td> </tr> {% endfor %}
over 4 years ago · Santiago Trujillo Relatório

0

Su plantilla en realidad tendría que ser más como esto:

 <tr> <td>{{ details['name'] }}</td> <td>{{ details['lastname'] }}</td> </tr>

Sin bucles.

Si tuviera una variedad de diccionarios, entonces podría usar su plantilla inicial.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda