Piloni, uno dei due framework che si univano per essere Pyramid (l'altro era repoze.bfg) era "vicino" a un sistema MVC.
Mi sono avvicinato alle quotazioni, perché negli ultimi anni molte persone hanno litigato su ciò che MVC significa ... e molti progetti che una volta si sono detti "MVC" hanno iniziato a chiamarli "MTC" (modello controller modello) "MT" (modello modello) o "MV" (vista modello). Tutti sono d'accordo su cosa sia il "modello", ma esattamente su cosa la "vista" e il "controllore" mappano - su un determinato contesto - possono essere un punto di contesa.
Piramide e piloni hanno entrambi una funzionalità "dispatcher" per impostare la mappatura per una richiesta. Sotto piloni è in config/routes.py; sotto Pyramid è un po 'diverso - gli scaffold di default hanno il routing in app/init .py, ma sei libero di scomporlo in app/routes.py o usa config.include() per spingerlo dentro di te "gestori" o config.scan() per estrarlo dalle "viste".
"handlers" in piramide sono forniti da pyramid_handlers e sono davvero solo "viste" con un po 'di roba di generazione automatica. Se lo volevi, le tue app potrebbero usare entrambi i gestori e le visualizzazioni (le mie).
In ogni caso, a seconda di come si interpretano MVC/MTC/etc, questo è un tavolo loose di ciò che si potrebbe desiderare:
|| mvt | mvc | mvc
==========================================================================
model || sqlalchemy | sqlalchemy | sqlalchemy
view || views/handlers | templates | views/handlers + templates
controller || | views/handlers | dispatch/routing
template || templates | |
nota- rapida Sto definendo quanto sopra non in base alla mia interpretazione o cosa è la definizione MVC "ufficiale" ... Si basa su come gli altri framework popolari si commercializzano da soli.
fonte
2012-02-28 17:33:07
Ciao, ho letto tutto questo sulla loro pagina web e ho anche guardato degli esempi, ma non riesco ancora a ottenerlo quindi cercare una spiegazione da un altro sviluppatore PHP che possa metterlo nei termini indicati nella mia domanda, in modo che io possa capire esso. Grazie. – Phil
Ma gli sviluppatori di Pyramid ti stanno dicendo che non c'è un'analogia diretta. Perché non ti fidi di loro? – Wilduck
No no, mi fido di loro. Le persone Python sono davvero belle. Mi piacerebbe solo capire la logica dietro. Ad esempio, in Kohana è semplice. Definire gli URI, attivare un controller dall'URI, dire al controllore di fare cose, ad esempio, usare una classe modello per effettuare chiamate DB, quindi includere un modello o due, mescolare i due create-render la risposta e inviarla indietro. Voglio solo sapere come si svolge questo processo con Pyramid. Mi piace molto la sintassi di Python e voglio approfondirla. Grazie. – Phil