Estaba trabajando en un proyecto Flask, obteniendo algunos datos de un contenedor API. El contenedor devolvió un objeto generador, por lo que I print
los valores (for obj in gen_object: print obj
) antes de pasarlo a render_template()
de Flask.¿Los objetos del generador Python se vuelven "inutilizables" después de atravesarlos?
Al solicitar la página mientras print
ing los objetos, la página está vacía. Pero al eliminar el bucle for
, la página representa el contenido del objeto generador.
@app.route('/')
def front_page():
top_stories = r.get_front_page(limit=10)
# this for loop prevents the template from rendering the stories
for s in top_stories:
print s
return render_template('template.html', stories=top_stories)
También puede que no sea más eficiente en cuanto a la memoria que usar una lista, dependiendo de qué tan lejos se separan los usos separados de los iteradores teed. – hop