¿Qué marco web no me hace implementar el modelo y las capas GUI por separado?

No estoy seguro de si esto es lo que estás buscando, pero web2py parece acercarse a lo que quieres. Es un marco web de Python que intenta simplificar el código involucrado en la creación de una aplicación web tanto como sea posible al ocuparse de tantas tareas comunes como sea posible (enhebrar, procesar encabezados, enrutamiento, etc.) automáticamente. web2py impone una arquitectura de modelo-vista-controlador y utiliza una capa de abstracción de base de datos en lugar de un modelo relacional de objeto (por ejemplo, “db (db.some_table.some_field == some_value) .select ()” para realizar consultas (que devuelve un objeto Rows –Básicamente una lista de objetos Row) y “db.some_table.insert (some_field = some_value)” para insertar). Sin embargo, una vez que se le ha dado un modelo, web2py puede generar fácilmente el código html para el formulario y automáticamente validará y procesará los valores enviados. Estos formularios también se pueden personalizar casi infinitamente.

Según sus requisitos, los formularios se generan en tiempo de ejecución y el formato del formulario se puede modificar pasando parámetros al constructor Field () como parte de la definición de la tabla (que supongo que cuenta como el uso de anotaciones en el modelo).

Si está hablando de una interfaz de usuario bonita orientada al consumidor, entonces no conozco una interfaz de usuario generada a partir del modelo de objetos en tiempo de ejecución. He trabajado con un marco REST no público que genera una interfaz de usuario orientada a la ingeniería en tiempo de ejecución y esperaría características similares en marcos disponibles públicamente.

Una capa de persistencia generada en tiempo de ejecución suena más problemática. Hay muchas bibliotecas de serialización de objetos que guardarán sus datos en un formato basado en el modelo de objetos en tiempo de ejecución. No estoy seguro de qué comportamiento esperaría si los datos antiguos no coinciden con el nuevo modelo de objetos. Si este punto no le concierne, entonces no veo una diferencia entre un esquema generado en tiempo de compilación y una base en el modelo de objetos en tiempo de ejecución.

Me sorprendería mucho si esto existiera.

Creo que podrá encontrar un marco viable que pueda derivar el modelo de base de datos del modelo de objetos, ya que es bastante simple, especialmente en un lenguaje de tipo estático.

La vista es mucho más complicada, ya que una interfaz de usuario contiene una gran cantidad de datos semánticos, bagaje cultural y metáforas específicas del dominio que son imposibles de derivar del modelo de objetos.

Si el modelo de objetos responde las preguntas: “¿qué es esto y qué puedo hacer con él?”, Entonces la interfaz de usuario responde la pregunta: “¿por qué debería importarme?”, Una pregunta que las computadoras no son muy buenas para responder.