Scegliere un quadro migliore
Il mondo dei framework web Python offre molte scelte. Alcuni dei framework importanti da considerare sono Django, Flask, Bottle, Diesel, Web2py, Pyramid, Falcon, Pecan, ecc., Che competono per lo sviluppatore mindshare. Framework come Pyramid, Django, Web2py e Flask sono ideali con il loro elenco di pro e contro; sceglierne solo uno per il tuo progetto è una scelta difficile da fare.
Dash è interamente progettato per diversi set di esigenze. Quindi, come sviluppatore, vuoi ridurre le legioni di opzioni a quella che ti aiuterà a completare il tuo progetto in tempo e con la perfezione.
Se confrontiamo i framework Flask, Pyramid e Django, Flask è un micro-framework principalmente rivolto a piccole applicazioni con requisiti più semplici mentre Pyramid e Django sono entrambi rivolti ad applicazioni più grandi. Pyramid è costruito pensando alla flessibilità e alla libertà, quindi lo sviluppatore ha gli strumenti giusti per il progetto. In caso di piramide, lo sviluppatore è libero di scegliere il database, la struttura dell'URL, lo stile dei modelli e altro. Tuttavia, Django include tutte le batterie necessarie a un'applicazione web, quindi dobbiamo solo installare Django e iniziare a lavorare.
Django viene fornito con un ORM, mentre Pyramid e Flask lasciano allo sviluppatore la scelta di come (o se) vogliono che i loro dati vengano archiviati. Generalmente, l'ORM più comune per le applicazioni web non Django è di gran lunga SQLAlchemy, tuttavia, altre opzioni possono essere DjangoDB, MongoDB, LevelDB e SQLite.
Essendo uno sviluppatore, se devo scegliere tra Django e Web2py per il mio progetto. Ho bisogno di avere un'idea dei vantaggi e dei limiti di entrambi i framework. Quindi confrontiamo Django e Web2py -
Django
La community di Django è un grande vantaggio. Questo in realtà significa che per uno sviluppatore la ricchezza di risorse sarà maggiore. Nello specifico, questo si riduce a:
- Documentation
- Risorse open source
- Supporto per app di terze parti
- Supporto alla distribuzione
- Canali IRC con sviluppatori utili
Django ha una grande comunità di team di sviluppo e documentazione. È il framework giusto quando abbiamo a che fare con la scrittura di un backend complesso in quanto fornisce molte app di terze parti che ti consentono di automatizzare cose come la logica dell'utente (registrazione, autenticazione), attività asincrone, creazione di API, blog, ecc.
Web2py
Web2py si adatta perfettamente allo sviluppo rapido di semplici app Web o server http. Di seguito sono riportati alcuni dei vantaggi e dei limiti di web2py.
Vantaggi di Web2py
I seguenti sono alcuni dei vantaggi del framework Web2py:
Web2py è un potenziale framework se paragonato a Django e Flask in termini di velocità e semplicità di sviluppo. Poiché Web2py utilizza un linguaggio per modelli basato su Python, ciò consente agli sviluppatori Python di iniziare a scrivere codice immediatamente dopo aver compreso le basi della scrittura di modelli come viste.
Web2py può eseguire codice compilato in Python come un'ottimizzazione per ridurre il tempo di esecuzione e per consentire di distribuire il codice in modo compilato.
Limitazioni di Web2py
Di seguito sono riportati alcuni dei limiti del framework:
Web2py supporta doctests, tuttavia non supporta unit test. Ora i doctest non sono la scelta ottimale a causa della loro portata limitata.
Non c'è differenza tra modalità di produzione e modalità di sviluppo. In caso di eccezione, il ticket viene generato tutte le volte e dovrai navigare fino al ticket per verificare l'errore. Ciò potrebbe essere utile in caso di server di produzione, ma sarà difficile nell'ambiente di sviluppo poiché gli sviluppatori hanno davvero bisogno di vedere l'errore all'istante piuttosto che controllare il numero del ticket.
Web2py ha un buon livello di astrazione del database (DAL) che ti consente di astrarre molti tipi di motori di database ma manca di un potente ORM. Nel caso tu abbia a che fare con un modello relativamente grande, il tuo codice verrà sparso da tutte le definizioni e gli attributi annidati che rendono le cose complicate.
Non possiamo utilizzare strumenti di sviluppo Python standard senza modifiche poiché web2py ha un supporto IDE davvero scarso.
I framework Django e Web2py sono framework full stack. Ciò significa che forniscono tutto il codice necessario, dai generatori di moduli ai layout di modelli e alla convalida dei moduli, e ti lasciano scrivere le cose in base alle tue esigenze specifiche.
Tuttavia, con i framework non stack come Flask e Pyramid, se si desidera creare un sito Web completo, sarà necessario aggiungere molto codice e bit extra. Ciò richiede molta abilità e tempo.
Dash
Dash è interamente progettato per attività specifiche di creazione di un framework reattivo per i dashboard. Dash by Plotly è un ottimo modo per lo sviluppatore Python di creare app Web interattive senza dover imparare Javascript e lo sviluppo web front-end. Dash è costruito su Flask, Plotly.js, React e React Js.
Non c'è confronto tra Dash e altri framework (menzionati sopra) in quanto appartengono a diverse categorie di framework. Di seguito sono riportati alcuni dei motivi per preferire Dash rispetto ad altri framework di dashboard interattivi (Jupiter Dashboards, matplotlib e altri) -
Con solo 50 righe di codice, puoi scrivere una semplice app Dash "hello world", poiché Dash richiede pochissimo boilerplater.
Intere app Dash sono scritte in linguaggio Python, il linguaggio preferito a livello globale.
Nel tuo codice Python, puoi associare componenti interattivi del trattino come menu a discesa, input di testo, cursori e grafici con "callback" Dash reattivi.
Le interfacce utente complicate nelle app Dash possono avere più input, più output e input che dipendono da altri input.
Allo stesso tempo, più utenti possono lavorare sulle app Dash.
Per creare i tuoi componenti Dash con React, dash utilizza React.js per eseguire il rendering dei componenti e include un sistema di plugin.
Gli sviluppatori o gli autori possono scrivere app dash che rispondono al clic, al passaggio del mouse o alla selezione di punti sul grafico poiché i componenti del grafico di Dash sono interattivi.
Conclusione
Possiamo concludere che la scelta del framework giusto tra molti framework Python disponibili dipende esclusivamente dal tipo di progetto, complessità, progetto piccolo o di livello aziendale, tipo di supporto comunitario disponibile o risorsa online disponibile, scalabilità, sicurezza, ecc.
I framework Python sopra menzionati sono i migliori della loro classe ma hanno i loro vantaggi e svantaggi (a seconda dei requisiti del progetto). Quindi, un tipo di framework non è adatto a tutti i tipi di progetti.