Pilones, uno de los dos marcos que se unieron para ser Pyramid (el otro era repoze.bfg) estaba "cerca" de un sistema MVC.
Puse más cerca de las citas, porque en los últimos años mucha gente ha estado peleando por lo que significa MVC ... y muchos proyectos que alguna vez se autoproclamaron como "MVC" comenzaron a llamarlos "MTC" (modelo controlador de plantilla) "MT" (plantilla de modelo) o "MV" (vista de modelo). Todos están de acuerdo con lo que es el "modelo", pero exactamente lo que la "vista" y el "controlador" asignan - en un marco dado - puede ser un punto de discusión.
Tanto las pirámides como las torres tienen una funcionalidad de "despachador" para configurar la asignación de una solicitud. En pylons está en config/routes.py; en Pyramid es un poco diferente: los andamios predeterminados tienen el enrutamiento en la aplicación/init .py, pero puede descomponerlo en la aplicación/routes.py o usar config.include() para insertarlo en usted. 'handlers' o config.scan() para sacarlo de sus 'vistas'.
'handlers' en pirámide son proporcionados por pyramid_handlers, y en realidad son solo 'vistas' con un montón de cosas de autogeneración. Si quisieras, tus aplicaciones podrían usar tanto manejadores como vistas (las mías lo hacen).
En cualquier caso, en función de cómo se interprete MVC/MTC/etc, esto es una tabla suelta de lo que es posible que desee:
|| mvt | mvc | mvc
==========================================================================
model || sqlalchemy | sqlalchemy | sqlalchemy
view || views/handlers | templates | views/handlers + templates
controller || | views/handlers | dispatch/routing
template || templates | |
nota- Rápida estoy definiendo lo anterior no se basa en mi interpretación o cuál es la definición 'oficial' de MVC ... Se basa en relación a cómo se comercializan otros marcos populares.
Hola, he leído todo esto en su página web e incluso he visto ejemplos pero aún no los obtengo, por lo tanto, busquen la explicación de otro desarrollador de PHP que pueda expresarlo en términos de mi pregunta, para que pueda entender eso. Gracias. – Phil
Pero los desarrolladores de Pyramid te dicen que no hay una analogía directa. ¿Por qué no confías en ellos? – Wilduck
No, no, confío en ellos. La gente de Python es realmente agradable. Me encantaría comprender la lógica detrás de esto. En Kohana, por ejemplo, es simple. Defina URI, active un controlador desde el URI, diga al controlador que haga cosas, por ejemplo, use una clase modelo para hacer llamadas DB, luego incluya una plantilla o dos, mezcle las dos creadas, renderice la respuesta y envíela de regreso. Solo quiero saber cómo se hace este proceso con Pyramid. Realmente me gusta la sintaxis de Python y quiero adentrarme en ella. Gracias. – Phil