La respuesta corta es no, hasta donde yo sé, no hay ORM de autogeneración para redis o MongoDB.
Ahora, para una explicación más detallada:
La razón por la cual existe la generación CRUD para 'fijos' almacenes de datos ORM y no se basa en los registros de forma libre es simple: la naturaleza misma de los registros de forma libre hace que sea difícil para crear un esquema
Echemos un vistazo a redis, por ejemplo, digamos que cada registro era un hash, p. Ej. clave 'user- {id}' con campos username, age y registered_on. Ahora, ¿qué sucede cuando agrega una nueva "ubicación" de campo a los usuarios? Bueno, a Redis no le importa, solo agrega el campo a cualquier registro a medida que se modifican, sin necesidad de volver atrás y agregar el campo a cada hash. Suficientemente simple.
Pero ahora, usted tiene su magia CRUD, que trata de averiguar qué campos mostrar. Decir que decide mirar el primer registro para ver qué campos existen, pero ¿qué sucede si al usuario-1 le falta ese nuevo campo de "ubicación"? Ahora el CRUD no lo generará.
Además, como redis almacena cada valor como una cadena, un CRUD no sabría que 'edad', por ejemplo, solo acepta un entero y register_on es en realidad una cadena de fecha con formato ISO.
Oh, pero dices, ¡MongoDB tiene tipos de datos! seguramente, suponiendo que ignoramos los diferentes campos por asignación de registro, simulando que tenemos el mismo conjunto de campos por registro, ¿es posible hacer allí algunos CRUD automáticos? Bueno, sí, podrás hacerlo un poco mejor que con Redis, porque hay, por ejemplo, un tipo de fecha y tipo entero, pero hay algunas discrepancias incluso entonces. Digamos que tiene un valor de cadena. ¿Cómo sabe si ese valor de cadena requiere una entrada de varias líneas (área de texto) o línea única (tipo de entrada = texto), o solo está disponible en una selección desplegable de algunas opciones?
Debido a esto, la única forma de realmente hacer un CRUD teórico para muchos tipos de forma libre sería si definió de antemano el 'esquema' (a través de una definición de Formulario quizás?) Para cada registro, y tal vez implementó algunos tipo de clase de interfaz/contrato que permitió a una herramienta CRUD listar registros para recuperar objetos, recuperar un registro individual por clave, actualizar/crear un registro y eliminar un registro individual por clave.
Una herramienta CRUD tan teórica y "enchufable" sería genial, y me encantaría ver a alguien haciéndolo.
No debería ser muy difícil crear algún tipo de software que lleva en sus documentos, y en función de cada documento, genera una clase WTForm para cada documento (siendo que cada documento puede tener diferentes conjuntos de datos en ellos, incluso si están destinados a representar objetos similares - la flexibilidad de no-sql y todo ...). Luego, podría usar un modelo en el matraz para registrar una función de vista que atrape un objeto, genere el formulario y muestre el formulario al usuario. Introspección de qué forma de widget y validación que necesita sería la parte difícil, como la respuesta a continuación indica sin embargo. – tkone