9 migliori framework Python per la creazione di applicazioni da piccole a enterprise

Python è sia un giocattolo divertente che uno spaventoso lanciafiamme. Lo stesso vale per quello che puoi fare con Python.


Python è amato da hobbisti, scienziati e architetti.

È dannatamente facile iniziare, ha astrazioni di ordine superiore e capacità di metaprogrammazione per costruire sistemi di grandi dimensioni e complessi e ha un camion pieno di librerie per fare praticamente qualsiasi cosa. Certo, ci sono limiti quando si tratta di concorrenza e digitazione forte, ma puoi aggirarli.

In questo articolo, daremo uno sguardo ad alcuni dei migliori framework Python quando si tratta di creare applicazioni Web grandi e piccole.

Django

Il Django framework ha resistito alla prova del tempo il framework web di riferimento per la comunità Python. Se hai assalito uno sviluppatore Python nel sonno e li hai costretti a creare un’applicazione web sotto tiro, avrebbero automaticamente raggiunto Django come un Rubyist raggiungerà Rails.

E c’è una buona ragione per questo. Django è, come dice lo slogan, “un framework web per perfezionisti con scadenze”. È quello che viene chiamato un framework “batterie incluse” (molto simile a come Python è un linguaggio incluso nelle batterie), che fornisce tutte le funzionalità comuni pronte all’uso.

Con queste funzionalità integrate, Django riduce notevolmente i tempi di sviluppo:

  • Un ORM pratico e piacevole, con migrazioni create e applicate automaticamente dal framework.
  • Impalcature per la generazione automatica del pannello di amministrazione in base ai tuoi modelli.
  • Supporto per cookie, sessioni, middleware, modelli, ecc.
  • Funzionalità di sicurezza come prevenzione XSS, prevenzione CRSF, ecc., Vengono applicate automaticamente.
  • Funziona praticamente con tutti i database disponibili (è facile trovare adattatori dove non esiste supporto ufficiale)
  • Supporto di prima classe per dati geografici e query spaziali GeoDjango

E molto altro ancora. Basti pensare che Django è un framework web completo e amichevole.

Django è per te?

Assolutamente si.

Django ha un senso eccellente per tutti i casi d’uso, che si tratti di prototipazione rapida o pianificazione di un’applicazione aziendale. L’unico lato negativo che incontrerai è la struttura del framework. Poiché Django si piega all’indietro per rendere lo sviluppo facile e veloce per te, impone la sua struttura (un concetto chiamato “convenzione sulla configurazione”) allo sviluppatore, che potresti non essere d’accordo. Ad esempio, se si desidera sostituire Django ORM con qualcos’altro (ad esempio SQL Alchemy), prepararsi alle sorprese.

Ti interessa diventare sviluppatore full stack con Django e Python? – Controlla questo fantastico corso online.

Borraccia

Mentre Django occupa quasi tutta la condivisione della mente nello sviluppo web di Python, Borraccia è un contendente forte.

A differenza di Django, Flask è un “micro-framework”, il che significa che si concentra sull’ottenere alcune cose minime e giuste e lascia il resto a te. Questo “il resto dipende da te” può essere fonte di frustrazione o gioia, a seconda di quali siano i tuoi obiettivi. Per coloro che sanno cosa stanno facendo e vogliono creare amorevolmente le loro applicazioni web scegliendo i componenti di loro scelta, Flask è una manna dal cielo.

Flask offre le seguenti funzionalità:

  • Routing, templating, gestione delle sessioni e altre utili funzionalità.
  • Supporto completo per test unitari
  • Un’architettura minimale e collegabile
  • Supporto REST di prima classe
  • Supporto per Blueprints, l’architettura unica di Flask per le piccole applicazioni web
  • Scegli i tuoi pacchetti per ORM, migrazioni, ecc.
  • Struttura flessibile dell’applicazione: posiziona i tuoi file nel modo più adatto a te
  • Pubblicazione di file statica
  • Conformità WGSI

Flask è per te?

Come già detto, Flask è un framework web minimale, con tutto suddiviso in singoli componenti che è possibile scambiare. Se hai fretta di costruire un prototipo, impiegherai molto tempo a prendere decisioni banali sul database, sulla struttura delle cartelle, sull’instradamento, ecc., Che possono rivelarsi controproducenti. Flask funziona al meglio quando si sta realizzando un progetto stabile e serio di medie e grandi dimensioni, in particolare API REST.

Bottiglia

Se pensavi che l’approccio di Flask non fosse abbastanza minimale e che desideri ancora un maggiore controllo, saluta Bottiglia.

Bottle si spoglia ancora di più, al punto in cui l’unica dipendenza è la libreria standard di Python. Ciò significa che nessuna installazione pip o installazione pip può essere eseguita, anche se molto probabilmente sarà necessario in breve tempo. Ecco perché Bottle si distingue per alcune persone:

  • Distribuzione a file singolo. Sì, l’intera applicazione risiede in un singolo file “.py”.
  • Nessuna dipendenza esterna. Se hai installato la versione Python giusta, sei a posto.
  • Fornisce il suo motore di template, che può essere sostituito con Jinja2, Mako o Cheetah.
  • Supporto per moduli, intestazioni, cookie e upload di file.
  • Web server integrato, che può essere facilmente sostituito.

È la bottiglia per te?

Se stai realizzando un’app davvero piccola (ad esempio, meno di 500 righe di codice) senza requisiti speciali, Bottle potrebbe avere molto senso per te. È un approccio completo e senza fronzoli alla creazione di app Web, ma in pratica scoprirai di essere più ostacolato che aiutato da Bottle. Il motivo è che il mondo reale è sempre in evoluzione e prima che tu lo sappia. Nuovi requisiti verranno eliminati in testa. A quel punto, mettere tutto in un unico file diventerebbe un lavoro ingrato.

Inoltre, se pensi che Bottle e Flask siano quasi uguali, hai ragione. Proposte di fusione i due risalgono al 2012 e anche Armin, il creatore di Flask, è d’accordo. Tuttavia, Marcel, il creatore di Bottle, mantiene una rigida distinzione ideologica a causa dell’approccio a file singolo e insiste sul fatto che i due rimangono separati.

Zope

Zope è complicato da spiegare, ma ci proverò. Sì, è un framework Web che può essere utilizzato per creare applicazioni grandi o piccole, ma non è tutto. Zope è più una piattaforma composta da strumenti (inclusi i framework Web) creati secondo la filosofia Zope e gestiti da Zope Corporation.

Zope ha diversi componenti e funzionalità interessanti adatti allo sviluppo di applicazioni aziendali:

  • Un’architettura di registrazione e rilevamento dei componenti per configurare un’app di grandi dimensioni.
  • ZODB – (l’unico) database di oggetti per Python per la memorizzazione nativa di oggetti.
  • Quadro completo e standard per i sistemi di gestione dei contenuti
  • Una serie di framework di applicazioni Web – quello canonico è ancora chiamato Zope, sebbene diversi nuovi framework (come Grok) siano stati costruiti su di esso.
  • Standard elevati per lo sviluppo, il rilascio e la manutenzione del software.

Zope è per te?

Se cerchi un ambiente altamente strutturato per la creazione di app di grandi dimensioni, Zope va bene. Detto questo, incontrerai anche la tua giusta dose di problemi. Mentre Zope continua a evolversi, la comunità è davvero piccola, nella misura in cui molti sviluppatori Python non ne hanno nemmeno sentito parlare. Trovare tutorial e ampia documentazione è difficile, quindi preparati a fare molte ricerche (anche se la community è davvero utile!). Inoltre, gli sviluppatori Python che incontrerai potrebbero non voler imparare Zope e “diluire” il loro set di abilità.

TurboGears

TurboGears è un framework altamente flessibile che ha un’architettura veramente compostabile. È un framework che si adatta alle tue esigenze e puoi usarlo per creare un’applicazione a file singolo o un colosso multi-tenancy.

TurboGears ha alcune caratteristiche eleganti, alcune delle quali non sono presenti nei framework popolari (come Django) o sono difficili da costruire:

  • Supporto di prima classe per più database
  • Transazioni multi-database
  • Altamente modulare: inizia con un singolo file e ridimensionalo quanto ti serve
  • Un potente ORM (SQLAlchemy, che è più maturo e capace dell’ORM di Django)
  • Architettura collegabile basata sulla specifica WSGI
  • Supporto integrato per lo sharding del database
  • Un’interfaccia basata sulle funzioni anziché su gerarchie orientate agli oggetti profonde e rigide.

TurboGears fa per te?

Se vuoi sviluppare felicemente e vuoi un framework testato, maturo e robusto lontano dal rumore dei media di “fantastico, di nuova generazione” e tutto il resto, TurboGears è perfetto. È molto rispettato nella comunità e ha una documentazione completa ed estesa. Certo, TurboGears non è supponente, il che significa che i tempi di installazione e configurazione iniziali possono essere più lunghi, ma è il framework ideale per lo sviluppo di applicazioni aziendali.

web2py

web2py è iniziato come un progetto per hobby ed è stato rilasciato nel 2007. Il suo obiettivo è rendere lo sviluppo web facile e accessibile a tutti.

Di conseguenza, Web2py porta all’estremo l’approccio a zero dipendenze: non ha requisiti, niente da installare e include un editor basato su Web completo per lo sviluppo, la gestione del database e la distribuzione.

Puoi quasi pensarlo come Android Studio, che è più un ambiente completo che un semplice framework. Alcune belle funzioni di Web2py sono:

  • Praticamente nessuna curva di apprendimento.
  • Nucleo minimo (solo 12 oggetti), che può anche essere memorizzato!
  • Modello in puro pitone
  • Protezione contro XSS, CSRF e altri attacchi
  • Un’API piacevole e coerente

Web2py è per te?

Web2py è un framework stabile e divertente, ma è difficile consigliarlo contro altre opzioni come Django, Flask, ecc. Non ci sono quasi lavori e la storia dei test delle unità non è eccezionale. Detto questo, potresti apprezzare l’API del codice e l’esperienza complessiva offerta dal framework, soprattutto se stai creando API REST.

CherryPy

CherryPy è un altro microframe che mira a fornire funzionalità di base del framework e ad allontanarsi rapidamente.

Mentre è paragonabile ad altri microframework come Flask, CherryPy vanta una certa distinzione:

  • Contiene un server multi-thread incorporato (qualcosa che rimane nella lista dei desideri di Flask)
  • Il (singolo) web server può ospitare più applicazioni!
  • Servi la tua applicazione come app WSGI (per interfacciarsi con altre app WSGI) o come semplice server HTTP (che funziona meglio)
  • Supporto di prima classe per la profilazione e test unitari
  • Funziona su PyPy (per i veri drogati delle prestazioni), Jython e persino Android

CherryPy fa tutto questo, e poi il solito che ti aspetteresti da un framework web.

CherryPy è per te?

Se stai sviluppando principalmente servizi RESTful, CherryPy è un contendente molto più serio di Flask. È un framework vecchio di dieci anni che ha maturato bene ed è adatto sia per applicazioni piccole che grandi.

Sanic

L’ascesa di Node e il suo modello di programmazione asincrono hanno lasciato dietro di sé molte comunità, incluso Python. In risposta, una raffica di strutture web asincrone sono apparse sul radar, Sanic essere uno di loro.

Sanic è fortemente ispirato da Flask, nella misura in cui ha preso in prestito i decoratori del percorso, i progetti e altre linee di base e platine. E non si vergognano di ammetterlo. Ciò che Sanic porta sul tavolo, se sei un fan di Flask, è un vero I / O non bloccante per soddisfare i livelli di prestazioni di un’applicazione Node. In altre parole, Sanic è Flask con supporto asincrono / attendi!

Rispetto a CherryPy, Sanic ha un incredibile vantaggio prestazionale (basti pensare a come andrebbe contro Flask!). Dai un’occhiata ai seguenti risultati testati da DataWeave:

Come puoi vedere, una volta che i numeri di concorrenza iniziano a superare i 50 al secondo, CherryPy praticamente soffoca e genera un alto tasso di fallimento.

È Sanic per te?

Mentre le caratteristiche prestazionali di Sanic spazzano via tutto il resto dall’acqua, potrebbe non essere la scelta migliore per il tuo prossimo progetto. Il motivo principale è la mancanza di librerie asincrone. La maggior parte degli strumenti e delle librerie Python esistenti sono stati scritti per la versione CPython a thread singolo, senza alcuna previsione di operazioni con elevata concorrenza o asincrone. Se, ad esempio, il tuo ORM preferito non supporta operazioni asincrone, viene annullato l’intero punto di utilizzo di Sanic.

A causa di questi motivi di maturità e disponibilità, non esamineremo altri framework asincroni in Python.

masonite

Mi sono imbattuto in questo quadro qualche tempo fa e ho pensato che fosse un passo nella giusta direzione. Da allora è stata rilasciata la versione 2.0 e mi sembra che sia finalmente arrivato il momento di dare masonite un po ‘di amore.

In poche parole, Masonite è la versione Python di Laravel (un famoso framework PHP, nel caso in cui non lo sapessi). Perché è importante? È importante perché Laravel è stato costruito sui principi di Ruby on Rails e insieme questi due framework consentono agli sviluppatori non-Ruby di sperimentare il “Rails Way” di fare le cose.

Gli sviluppatori di Laravel (e, in una certa misura, Rails) si sentiranno come a casa e funzionerebbero letteralmente in pochissimo tempo. Quando ho provato Masonite (e ho presentato un problema o due, incluso un bug!), Sono stato in grado di costruire API REST con il pensiero esattamente zero perché la mia memoria muscolare Laravel stava facendo tutto.

Come framework full-stack incluso nelle batterie, Masonite porta sul tavolo diverse cose interessanti:

  • ORM in stile record attivo
  • Migrazioni di database (che, a differenza di Django, devono essere create dallo sviluppatore)
  • Un potente contenitore IoC per l’iniezione delle dipendenze
  • CLI (chiamata “mestiere”) per impalcature e attività in corso
  • Supporto di prima classe per test unitari

Il più grande “rivale” per Masonite è Django, poiché la comunità sta facendo del suo meglio per commercializzare il framework come facile, delizioso e la prossima grande novità. Se supererà Django è qualcosa che il tempo dirà (se me lo chiedi, ha un tiro decente), ma per una discussione confrontando i due, vedi Qui e Qui.

Masonite è per te?

La masonite è ancora un bambino rispetto a Django, quindi non c’è modo di consigliarla su Django. Detto questo, se ti piacciono le cose su Rails (o Laravel), apprezzerai ciò che Masonite ha da offrire. È ideale per la realizzazione rapida di prototipi che richiedono tutto preconfigurato e facili da cambiare.

Conclusione

Non mancano i web framework Python là fuori, grandi e piccoli. Sebbene sia possibile raccogliere praticamente qualsiasi cosa per un piccolo progetto, un’applicazione aziendale richiede che non siano in grado di soddisfare molti di questi framework. Se mi chiedi, per lo sviluppo aziendale, Django (in una certa misura), Zope e TurboGears sono ciò che mi viene in mente. E anche tra quelli, sono propenso a TurboGears.

Detto questo, qualsiasi architetto degno del suo sale può raccogliere un microframe e implementare la loro architettura. E questo è praticamente ciò che accade nella pratica, il che spiega il successo di Flask e idee simili.

Se sei un principiante, allora questo corso online sarebbe utile imparare Python.

TAGS:

  • Pitone

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map