pagination - objects - Paginación eficiente con Frasco y Mongoengine
querying database mongoengine (1)
Tengo una aplicación Flask con la que me gustaría mostrar tablas paginadas de datos de una Colección MongoDB. Sin embargo, hay muchos documentos potencialmente en esta colección, por lo que me gustaría cargarlos de forma perezosa, solo cargando los que están a punto de mostrarse.
Mi problema es que en una página de mi aplicación me gustaría paginar:
Stuff.objects()
Pero en diferentes páginas me gustaría paginar:
Stuff.objects(__raw__=query)
o Stuff.objects(message__in=Message.objects(__raw__=query))
Llamar a cualquiera de esas funciones particulares carga automáticamente todos los objetos relevantes en la memoria (como descubrí ejecutando locals()
) así que tengo que paginar las llamadas con:
Stuff.objects().skip(number).limit(pagelength)
, o Stuff.objects(__raw__=query).skip(number).limit(pagelength)
Por lo que parece que necesito una clase de Paginator a la que simplemente puedo pasar el Report
, y de alguna forma especificar la información de la consulta.
¿Alguien puede recomendar una solución?
Intente usar el paginador de flask-mongoengine Puede usarlo así:
paginator = Pagination(Post.objects, 1, 10)
print paginator.items