it-swarm.it

Che cos'è un buon peso leggero Python framework MVC?

So che ci sono un sacco di Python là fuori. Potete ragazzi indicarmi la giusta direzione? La mia preoccupazione principale è la semplicità, non ho bisogno di molte funzionalità estranee. Ecco un paio di altre cose che vorrei (o non volevo):

  • non importa per ORM, voglio solo che funzioni con MySQL
  • ha percorsi configurabili
  • ha il supporto per i layout
71
jon

web2py è 265 KB di codice sorgente e 1,2 MB tutto compreso (confronta con 4,6 MB di Django). Eppure web2py farà tutto ciò di cui hai bisogno (gestisci sessione, cookie, richiesta, risposta, cache, internazionalizzazione, errori/ticket, astrazione del database per GAE, SQLite, MSSQL, MySQL, Postgres, Oracle, FireBird, ecc.) Non necessita di installazione - basta decomprimerlo e fare clic su di esso - e puoi fare lo sviluppo nel tuo browser.

Web2py ha sia percorsi che percorsi inversi.

Web2py ha un sistema di modelli gerarchici, il che significa che una vista può estendere un layout che può estendere un altro layout, ecc. Le viste possono anche includere altre viste.

44
massimo

Dato che non vuoi esplicitamente un ORM, starei lontano da un framework "full stack" se fossi in te. Lo standard WSGI di Python ti offre moltissime opzioni di facile utilizzo che ti daranno solo le funzionalità di cui hai bisogno e ti permetteranno persino di scegliere il tuo stile di lavoro.

Ecco un esempio: per l'invio di URL è possibile utilizzare Rotte , quali porte sullo stile di invio URL di Rails. Oppure puoi combinare Selettore con WebOb se quello stile ti soddisfa di più.

Per "layout", puoi usare il potente Jinja2 se vuoi modelli che non possono eseguire codice. Oppure, Mako se preferisci essere in grado di mescolare un po 'di codice con i tuoi modelli. Puoi persino usare Deliverance per controllare il layout delle pagine composte da più app e persino più lingue!

Un framework web full-stack è bello in quanto fa una serie di scelte per te, permettendoti di prestare attenzione solo all'app che costruisci. Ma le scelte che ho elencato sopra sono una buona collezione per farti costruire la tua. Se segui questo percorso, troverai facile collegare Becher per la memorizzazione nella cache e le sessioni se ne hai bisogno, oppure WebError per aiutarti con il debug.

Personalmente, sono un grande fan degli ORM (in particolare SQLAlchemy ), ma se stai cercando di diventare ORM libero e leggero nel complesso non puoi battere la combinazione dei fantastici componenti WSGI disponibili in Python.

31
Kevin Dangoor

Prova web.py una prova. È molto semplice e può fornire il minimalismo che stai cercando.

11
Dimitry Z

piloni.

È molto meglio di Django e non ha un ORM schifoso.

9
habnabit

Le persone hanno già fornito molte risposte relative ai framework delle applicazioni Web, ma MVC (o qualsiasi altro paradigma) non è legato solo al web. Questo è solo per chiarezza.

Se si tratta di un semplice MVC, Pylons si conforma al paradigma in modo più rigoroso. Django interpreta MVC e lo chiamano modello-vista-modello , ma l'idea della separazione dei ruoli è la stessa. La scelta effettiva è una questione di gusti personali, sebbene nessuna di queste due consideri leggerezza (I piloni potrebbero sembrare più leggeri , ma in realtà non lo è, e recentemente Django ha raccolto un peso aggiuntivo - molto probabilmente non si adatterà nemmeno a piccole applicazioni come il blog personale nella memoria di 20 MB).

Naturalmente, nulla ti impedirà di scrivere il tuo framework, ad es. con WebOb . Puoi renderlo come leggero come vuoi (e imparare molte cose provandoci).

8
zgoda

checkout https://github.com/salimane/bottle-mvc oppure https://github.com/salimane/flask-mvc . Sono piastre di caldaia che potrebbero iniziare con controller, modelli in cartelle separate. Si basano su bottle e flask micro framework, nessuna funzionalità inutile, ti danno la flessibilità di plug-in qualunque modulo tu voglia.

Se vuoi qualcosa di semplice, senza dover creare il tuo framework , pur non essendo tutto compreso (Django), potresti provare CherryPy . Può usare quasi qualsiasi dispatcher (gestore della pagina/sistema di routing URL). Dovresti anche scegliere il tuo motore di template, Genshi è il mio preferito.

6
alif

Quando si tratta di applicazioni desktop Dabo è una buona scelta. È un framework multipiattaforma su wxPython che supporta MySql, Postgresql, Firebird e Sqlite.

6
uwe

Vuoi web2py. Controllalo:

  • non importa per ORM, voglio solo che funzioni con MySQL

Web2py non ha un ORM, ma ha un wrapper sintattico su SQL che rende molto più semplice eseguire l'SQL.

  • ha percorsi configurabili
  • ha il supporto per i layout

... web2py ha entrambi questi.

E web2py è più leggero di Django/Rails/qualunque cosa su quasi tutti i punti. È MOLTO facile da imparare. Le cose più difficili nell'apprendimento di un framework MVC sono gli script, l'ORM e (con Django) il linguaggio dei template. Ma web2py si è sbarazzato degli script, ha semplificato l'ORM e il linguaggio dei template è solo python in un modo molto intelligente.

5
toomim

Django!

Google App Engine lo utilizza.

Lo uso anche per i miei progetti di animali domestici.

4
Graviton

Sì, direi Django è sicuramente la strada da percorrere. Il suo design modulare ti consente di combinare e abbinare i componenti (ORM, motore di template, invio URL, ...) Invece di rimanere bloccato con un componente fornito dal framework, è possibile sostituirlo con qualsiasi equivalente di terze parti.

4
Gabriel Ross

web2py! Django chiama un controller una vista ', ha detto nuf.

3
why

Se vuoi semplicità usa web2py o tralicci. Django è buono ... ma la curva di apprendimento è ripida

3
BasicGuy

Django. Non have per utilizzare le funzionalità aggiuntive, ed è ben progettato in modo da poter mescolare le librerie di terze parti secondo necessità.

2
John Millikin

Vorrei dare un'occhiata a Piloni ; è leggero e veloce.

2
tholo

Sono anche sulla barca Django. Ecco alcuni motivi per cui:

  • Probabilmente risparmierai tempo con l'interfaccia di amministrazione di Django evitando le domande manuali.
  • Il sistema di template di Django è fantastico
  • Django ha una comunità MERAVIGLIOSA , molto desiderosa di aiutare (vedi #Django su freenode )
2
Ross

Sono davvero nuovo su Python ma ho provato un po 'tranquillo, specialmente Django e web2py. Ho adorato la semplicità di web2py, sono stato in grado di creare un sito di media complessità in pochi giorni. Ha una serie imprecisa di funzionalità come DAL, generazione di codice, HTML hlpers e per me la caratteristica più importante è stata la documentazione nel sito abbastanza completa.

2
user10917

Django è la mia raccomandazione.

Puoi trovare un introduzione qui (un Google Tech Talk di Jacob Kaplan-Moss):

E potresti anche dare un'occhiata a discorso di Adrian Holovaty tenuto a Snakes and Rubies , DePaul University:

0
Nolan Evans