Maybaygiare.org

Blog Network

I framework Web Python più popolari nel 2021

Matt Sanders il 02 luglio 2020

I framework Web sono strumenti potenti. Astraggono gli aspetti comuni della creazione di siti Web e API e ci consentono di creare applicazioni più ricche e stabili con meno sforzo.

Una vasta gamma di framework web è disponibile per noi in Python. Alcuni sono provati favoriti con grandi ecosistemi e comunità. Altri eccellono in casi d’uso di nicchia o per specifici tipi di sviluppo. Ancora, altri sono up-and-comers con convincenti nuove ragioni da considerare. Continua a leggere per esplorare le opzioni e trovare ciò che funziona meglio per voi.

Se sai già cosa ti interessa, usa i link qui sotto per saltare avanti:

  • Come scegliere il framework giusto per le tue esigenze
  • Full-Stack Frameworks vs. Microframeworks vs. Asincrona Quadri
  • Python Full-Stack Framework
  • Microframeworks per Python
  • Asincrona Quadri per Python
  • Che Python web framework è meglio per voi?

Se vuoi un aiuto per decidere, puoi anche passare direttamente alla nostra panoramica dei consigli.

Come scegliere il framework giusto per le tue esigenze

I framework sono progettati per risolvere diversi problemi e fare compromessi per servire meglio il pubblico previsto. Se tutti avessero gli stessi obiettivi avremmo bisogno solo di un quadro! Mentre valuti i framework, alcune considerazioni importanti includono:

  • Qual è la probabile dimensione e complessità finale di ciò che stai costruendo?
  • Preferisci scegliere le tue librerie, la configurazione e la struttura dell’applicazione o vuoi un set più curato di opzioni selezionate per te in anticipo?
  • Quanto saranno importanti le prestazioni per il tuo progetto?
  • Quanto velocemente vuoi essere in grado di sviluppare e distribuire la tua applicazione?
  • Per quanto tempo la tua applicazione sarà in giro e quanti sviluppatori probabilmente lavoreranno su di essa?

Inoltre, considera la qualità della documentazione disponibile per le potenziali scelte e le dimensioni della comunità attorno a un progetto: ciò influisce sia sulla gamma di plugin o integrazioni esistenti che puoi sfruttare per rendere lo sviluppo più rapido che sulla probabilità di essere in grado di ottenere aiuto mentre rimani bloccato.

Tieni a mente questi aspetti mentre esplori le tue opzioni-ce ne sono molte! A seconda della longevità del tuo progetto, considera anche se è probabile che un framework cresca con te. Sarà una buona misura per la tua applicazione sia ora che in futuro?

Full-Stack Frameworks vs. Microframeworks vs. Asynchronous Frameworks

I framework Python possono essere suddivisi approssimativamente in tre campi, full-stack frameworks, microframeworks e asynchronous frameworks.

I framework full-stack sono generalmente focalizzati sulla creazione di applicazioni più grandi e complete e offrono molte funzionalità comuni. Se stai cercando di costruire qualcosa di complesso rapidamente o vuoi dei valori predefiniti ragionevoli su come mettere insieme un’applicazione senza fare tutte le scelte da soli, un framework full-stack è una buona scelta. I framework full-stack generalmente forniscono impostazioni predefinite ragionevoli per comunicare con i database, creare modelli per le visualizzazioni, gestire code, lavori in background e altri aspetti comuni di applicazioni più grandi.

I Microframeworks sono generalmente focalizzati sulla fornitura di un piccolo nucleo di funzionalità e invitano lo sviluppatore a fare le proprie scelte su quali librerie e tecnologie aggiungere per altre funzionalità. Ciò ha il vantaggio di consentire un maggiore controllo sulla progettazione dell’applicazione e può comportare prestazioni migliori dell’applicazione. In genere richiedono allo sviluppatore di scegliere il proprio livello di astrazione del database e altre librerie. Microframeworks può essere un’ottima scelta per applicazioni più piccole e più strettamente focalizzate, sviluppo API o applicazioni in cui le prestazioni sono più importanti.

I framework asincroni sono focalizzati sulla fornitura di elevati livelli di prestazioni consentendo un numero molto elevato di connessioni simultanee. Mentre è possibile aumentare significativamente la concorrenza della maggior parte dei framework sincroni associandoli a server asincroni come gevent, i framework nativamente asincroni fanno un ulteriore passo avanti con uno stack completamente asincrono. Generalmente, i framework asincroni richiedono più rigore nello stile di programmazione e hanno un set più limitato di plugin. I framework asincroni sono ottimi quando è necessario fornire una funzionalità specifica a un volume molto elevato.

Framework Python full-Stack

Django

Django.jpeg

Django è il framework full-stack più popolare per Python. Ha una meritata reputazione per essere altamente produttivo quando la costruzione di applicazioni web complesse. Soprannominato “il framework web per perfezionisti con scadenze”, il suo obiettivo è lo sviluppo rapido con opzioni ben documentate per casi comuni.

Django è stato intorno per più di un decennio (prima versione nel 2006) ed è maturo, completo, ben documentato e ha una comunità molto grande. È un framework supponente, il che significa che prende molte decisioni per lo sviluppatore. Gli aspetti positivi di questo approccio stanno rendendo più veloce l’avvio dello sviluppo, le integrazioni “benedette” che funzionano e più spazio di testa per concentrarsi sulle esigenze personalizzate del progetto invece di quali librerie utilizzare. Inoltre, i progetti Django tendono a sembrare piuttosto simili, il che rende più facile per gli sviluppatori aumentare rapidamente i progetti che sono nuovi per loro e per i team organizzare i loro sforzi in modo coerente.

Django offre un sacco fuori dalla scatola, tra cui il proprio object-relational mapper (ORM) per lavorare con i database, un approccio standard per l’autenticazione e l’autorizzazione, un’interfaccia di amministrazione generata automaticamente (utile per la prototipazione rapida), caching integrato e altro ancora.

Buono per progetti piccoli e grandi, Django può essere scalato bene per carichi ragionevoli ed è stato utilizzato da molti siti ad alto traffico tra cui Instagram, Mozilla, e il Washington Post. Django ha funzionalità asincrone nella versione 3.0, con viste asincrone e middleware in arrivo nella versione 3.1.

Mentre tradizionalmente focalizzata su applicazioni web full-stack, Django è anche adatto per lo sviluppo di applicazioni back-end API-only. Esistono integrazioni mature per creare rapidamente API REST e GraphQL con Django.

Linea di fondo: Lo standard de-facto per una buona ragione, Django è il framework full-stack dominante per Python. Eccellente per iniziare rapidamente e con una comprovata esperienza per il ridimensionamento, Django è una grande misura per molti progetti. Se si preferisce personalizzare più di Django permette, prendere in considerazione Piramide e il microframeworks. Se hai bisogno di una concorrenza molto elevata, esplora i framework asincroni.

Piramide

piramide.jpg

Pyramid è un altro popolare framework full-stack. Con radici nel progetto Pylons, è stato in sviluppo fin da Django ed è anche un’opzione molto matura.

In contrasto con Django, Pyramid è meno supponente. Fornisce routing, renderer e strumenti da riga di comando per il bootstrap di un progetto, ma offre la possibilità di scegliere il proprio livello di database, il sistema di template e altro tramite un ampio set di plugin.

Con la sua flessibilità fondamentale, Pyramid è una bella via di mezzo se stai cercando di decidere tra un framework full-stack o un microframework. Pyramid ti consente di iniziare più piccolo di Django e aumentare la complessità della tua base di codice secondo necessità. Questa flessibilità nel supporto della libreria può essere importante quando si hanno requisiti specializzati o si sta interfacciando pesantemente con sistemi che Django potrebbe non integrarsi bene (i database legacy sono un esempio comune).

Pyramid ha una base di fan dedicata e una comunità attiva che apprezza la sua natura grow-as-you-go e la flessibilità fondamentale. Se vai con Pyramid, aspettati un lavoro extra per scegliere i componenti in anticipo. Tuttavia, questo può essere tempo ben speso nel lungo periodo se ti consente di accelerare in modo permanente gli aspetti dello sviluppo che sono critici per te.

Bottom line: Un potente mix di flessibilità e controllo rende Pyramid un’alternativa convincente a Django per alcuni progetti.

Web2Py

web2py.jpeg

web2py è un framework full-stack che si concentra sulla facilità di sviluppo, con il proprio IDE web-based, debugger, e controlli di distribuzione. È stato ispirato da Ruby on Rails e Django e segue un design MVC (Model View Controller).

Il progetto è iniziato come strumento didattico e ha un’enfasi sulla funzionalità comune con valori predefiniti sensibili. Ha una curva di apprendimento molto più semplice rispetto alla maggior parte dei framework ed è estremamente facile da installare e iniziare. La documentazione è grande e un sacco di funzionalità viene integrato, tra cui uno scheduler, 2FA helper, e un bel sistema di biglietteria che viene automaticamente popolato da difetti di produzione.

web2py ha una comunità più piccola di Django e di altri framework, ma molto amichevole. Un sacco di tutorial e risorse sono disponibili.

Linea di fondo: Più adatto a nuovi programmatori o sviluppatori che sperimentano lo sviluppo web. Non è una grande misura per i nuovi progetti commerciali su larga scala.

TurboGears

turbogears.jpg

Presentato come il “framework che scala con te”, TurboGears consente di avviare l’applicazione semplice come un singolo file (come un microframework) o scalare fino a un’app full-stack con strumenti da riga di comando per supportare la gestione. In questo senso, è simile a Pyramid, con il vantaggio di un maggiore controllo/personalizzazione a scapito della richiesta di più lavoro in anticipo per determinare come si desidera strutturare la propria app e quali librerie si desidera integrare.

L’ORM predefinito per TurboGears è l’eccellente SQLAlchemy. TurboGears presenta interessanti differenze nel modo in cui gestisce il routing e la sua soluzione di template predefinita. A differenza della maggior parte dei framework full-stack, il routing viene gestito attraverso una gerarchia di oggetti invece di mappare le espressioni regolari ai controller (la mappatura è disponibile come opzione alternativa). Il sistema di template predefinito per TurboGears è Kajiki, un linguaggio ispirato a XSLT.

Bottom line: TurboGears scala bene con un sacco di controllo da piccoli progetti a quelli più grandi. Tuttavia, Pyramid offre una gamma simile di flessibilità ed è probabilmente una scelta migliore per la maggior parte delle persone.

Masonite

masonite.jpg

Masonite è un framework relativamente nuovo (2017) che ha una filosofia di design simile a Django ma mira a migliorare alcuni punti dolenti comuni. Offre ponteggi di codice avanzati, middleware di routing e supporto integrato per l’invio di e-mail, il caricamento S3 e l’accodamento.

L’architettura di Masonite è altamente estensibile e le sue capacità integrate sono impressionanti. La documentazione è buona e c’è un canale Slack attivo per il supporto. Utilizza il proprio ORM, Orator, basato su ActiveRecord.

Come un framework più recente, la comunità di Masonite è piccola ma in crescita. È attivamente migliorato e ha molto da apprezzare. Data la sua mindshare più piccola, è più difficile trovare sviluppatori che abbiano familiarità con Masonite, ma se le funzionalità aggiuntive pronte all’uso sono adatte alle tue esigenze, potrebbe accelerare lo sviluppo.

Bottom line: Un concorrente più recente, Masonite rende le attività più comuni come la gestione delle e-mail, il caricamento di file nel cloud e l’elaborazione dei pagamenti facili.

Microframeworks per Python

Flask

flask.png

Flask è una soluzione incredibilmente popolare sia per le applicazioni Web e microservizi. Originariamente ispirato al framework Ruby Sinatra, Flask si concentra sulla fornitura di un set principale di funzionalità (gestione delle richieste, routing, conformità WSGI, templating) e offre un design modulare per l’aggiunta di qualsiasi altra cosa di cui hai bisogno.

Di conseguenza, avviare un’applicazione è incredibilmente semplice. È possibile creare un’applicazione web funzionante in poche righe:

from flask import Flask, escape, requestapp = Flask(__name__)@app.route('/')def hello(): name = request.args.get("name", "World") return f'Hello, {escape(name)}!'

Flask ha una vasta gamma di estensioni disponibili, che consente di integrare le proprie scelte per l’archiviazione, l’interazione del database, l’autenticazione e l’autorizzazione, la sicurezza e altro ancora. Ci vorrà del tempo per integrare e impostare le tue scelte, ma le app possono essere create in modo incrementale e non includeranno librerie e codice per cose che la tua applicazione non utilizza.

Le app Flask in genere iniziano in un singolo file, ma possono essere ridimensionate per essere molto grandi. Esistono modelli comuni per organizzare le app flask e flask offre anche progetti come un modo per rendere le applicazioni più grandi più modulari e gestibili.

Bottom line: Estremamente flessibile, Flask è ideale per applicazioni Web, API e microservizi rivolti agli utenti. Flask è il microframma più popolare per Python.

Bottiglia

Bottiglia-logo.svg.png

Bottle ha una sintassi simile a Flask (in realtà lo precede di un anno), ma è distribuito come un singolo file senza dipendenze al di fuori della libreria standard python. Questo lo rende facile da eseguire in qualsiasi ambiente, compresi i luoghi in cui l’installazione di librerie sono difficili. Significa anche che la gestione delle dipendenze può essere banale, il che può essere ottimo per progetti più piccoli.

from bottle import route, run, template@route('/hello/<name>')def index(name): return template('<b>Hello {{name}}</b>!', name=name)run(host='localhost', port=8080)

Il set di funzionalità è abbastanza simile a Flask, ma la comunità attiva è molto più piccola. I plugin disponibili sono anche più limitati. Inoltre, ci sono meno tutorial e può essere più difficile trovare esempi di codice o ottenere aiuto.

Bottle è principalmente orientato verso app con basi di codice molto piccole e non ha un percorso chiaro per ridimensionare l’organizzazione del codice man mano che le cose si complicano. La semplicità è al centro. Avere meno dipendenze può semplificare molto la distribuzione (basta attaccare bottle.py nella directory del progetto) e ti porta da un prototipo a un’app di produzione più rapidamente.

Linea di fondo: Ottimo per progetti personali, piccole app o scenari di distribuzione in cui è difficile gestire dipendenze complesse.

H3: CherryPy

cherrypy_logo_big.png

CherryPy è un altro microframework maturo (in giro dal 2002) con i propri fan. Una delle principali differenze da Flask e Bottle è che CherryPy è orientata agli oggetti e si concentra sull’essere il più “pythonic” possibile. In altre parole, CherryPy mira a rendere la scrittura di un’app Web il più simile possibile alla scrittura di codice python generale. Diamo un’occhiata a un esempio:

import cherrypyclass HelloWorld(object): @cherrypy.expose def index(self): return "Hello World!"cherrypy.quickstart(HelloWorld())

Puoi vedere che l’app è definita come una classe, al contrario dell’approccio basato sulla funzione di Flask. Anche il routing stesso è basato su oggetti; il decoratore` @cherrypy ‘ segna quali metodi oggetto devono essere trasformati in percorsi, dove in Flask i decoratori definiscono i percorsi stessi. Alcuni sviluppatori preferiscono questa forma di routing implicito mentre altri lo trovano impegnativo.

Uno dei punti di forza di CherryPy è il suo server web, che è incluso nel framework. È veloce, pronto per la produzione, HTTP / 1.1-compliant, thread-pooled e può essere utilizzato con qualsiasi applicazione Python WSGI. In effetti alcuni sviluppatori usano il server Web di CherryPy per eseguire altre app WSGI (non CherryPy) perché è così facile da configurare e utilizzare.

CherryPy include anche molte funzionalità integrate, tra cui gestione delle sessioni, autenticazione, gestori di contenuti statici, caching, profilazione e altro ancora. Sono disponibili plugin che attingono a un ricco set di punti di estensione.

La comunità di CherryPy è molto più piccola di quella di Flask, il che significa una comunità più piccola di plugin, meno tutorial, ecc.

Linea di fondo: Vale la pena dare un’occhiata se si preferisce uno stile di sviluppo orientato agli oggetti.

Falcon

falcon.jpg

Falcon è un framework incentrato sulle prestazioni per la creazione di API REST e microservizi. Data la sua attenzione alla velocità, Falcon offre un set di funzionalità limitato: routing, middleware, ganci, gestione di errori/eccezioni e helper WSGI per semplificare il test delle unità.

Falcon perde qualsiasi interesse per le app rivolte agli utenti e si concentra sul servizio di JSON attraverso gli endpoint REST. Nota il verbo REST (GET) in questo esempio di codice:

import falconclass QuoteResource: def on_get(self, req, resp): """Handles GET requests""" quote = { 'quote': ( "I've always been more interested in " "the future than in the past." ), 'author': 'Grace Hopper' } resp.media = quoteapi = falcon.API()api.add_route('/quote', QuoteResource())

Data la sua messa a punto e messa a fuoco singolare, Falcon è radicalmente più veloce (20-75x!) di Django e Flask in benchmark di richieste molto basilari. Altri aspetti forti di Falcon sono le risposte idiomatiche agli errori HTTP (un punto dolente comune quando si costruiscono le API) e la semplice gestione delle eccezioni. Funziona su PyPy e supporta Cython su CPython, due opzioni da considerare per le massime prestazioni.

Se ti piace l’idea di Falcon ma vuoi una soluzione più completa, dai un’occhiata a Hug, un framework costruito su Falcon che aggiunge la gestione delle versioni, la documentazione automatica e la convalida automatica basata sul tipo.

Bottom line: Se vuoi creare API REST/JSON altamente performanti, Falcon potrebbe essere per te.per ulteriori informazioni, visitare il sito: // / / / / / / / / / / / / / / / / / png

Sanic è un framework Web e server asincrono relativamente nuovo (prima versione nel 2016), “scritto per andare veloce”.

Mentre la maggior parte del full-stack e microframeworks in questa lista sono stati intorno per un decennio o più, l’aggiunta di asyncio in Python 3.5+ ha aperto le porte a tutta una nuova generazione di framework asincroni altamente performanti. Sanic è una delle opzioni più consolidate in questa nuova generazione.

La sintassi di Sanic è abbastanza simile a Flask, con l’aggiunta del supporto asincrono end-to-end:

from sanic import Sanicfrom sanic.response import jsonapp = Sanic()@app.route("/")async def test(request): return json({"hello": "world"})if __name__ == "__main__": app.run(host="0.0.0.0", port=8000)

È dotato di forti capacità di routing, middleware, streaming, supporto WebSocket, gestione dei cookie, route versioning, static file serving e altro ancora. Sanic è una scelta naturale se è necessario gestire connessioni di lunga durata come WebSocket o se è necessario un alto livello di concorrenza dalla propria API.

Con un framework asincrono, dovrai aggirare la programmazione asincrona in Python, con le relative avvertenze, complessità e sfide di debug. Vale la pena prendere il tempo per valutare se hai davvero bisogno delle prestazioni di un’API completamente asincrona, ma se lo fai, Sanic vale la pena dare un’occhiata!

Linea di fondo: Un’opzione matura e consolidata per lo sviluppo di API asincrone altamente performanti

FastAPI

fastapi.png

FastAPI è più recente di Sanic (prima versione all’inizio del 2019) ma sta guadagnando rapidamente slancio. Eccelle nella creazione di API REST o GraphQL e può gestire richieste sincrone, richieste asincrone, streaming e websocket.

Ha anche il supporto integrato per l’autenticazione e l’autorizzazione, la convalida dei dati, la serializzazione JSON e dispone di documentazione API automatica seguendo lo standard OpenAPI.

from fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"Hello": "World"}@app.get("/items/{item_id}")def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q}

Il set di funzionalità di FastAPI è davvero impressionante e colpisce un punto debole con la sua combinazione di flessibilità e facilità di sviluppo. È progettato molto attentamente e sfrutta ampiamente l’hinting di tipo e l’iniezione di dipendenza per ridurre i bug in fase di sviluppo. Inoltre, la documentazione e il supporto per l’editor di FastAPI sono eccellenti.

La sintassi di FastAPI è abbastanza simile a Flask, il che lo rende una buona scelta se si sta cercando di migrare le basi di codice Flask esistenti in una soluzione completamente asincrona.

Linea di fondo: Un quadro in aumento, FastAPI vale la pena esplorare per il tuo prossimo progetto asincrono.

Starlette

starlette.png

Starlette è un framework e toolkit ASGI leggero, che fornisce primitive e integrazione modulare per consentire di creare la propria applicazione con qualsiasi grado di controllo desiderato.

ASGI è un successore di WSGI, che fornisce un’interfaccia standard tra server Web asincroni, framework e applicazioni. Si noti che ASGI supporta sia le operazioni sincrone che asincrone e ASGI include un’implementazione di compatibilità con le versioni precedenti di WSGI.

Come framework, Starlette unisce le sue varie funzioni per te, incluso il supporto WebSocket, il supporto GraphQL, le attività in background nel processo, il supporto per sessioni e cookie, CORS, GZip, file statici e altro ancora. È inoltre possibile utilizzare ogni pezzo in modo indipendente, raccogliendo e scegliendo pezzi specifici del toolkit.

Poiché Starlette è prima un toolkit, l’uso come framework può sembrare più compositivo, con problemi esposti separatamente:

from starlette.applications import Starlettefrom starlette.responses import JSONResponsefrom starlette.routing import Routeasync def homepage(request): return JSONResponse({'hello': 'world'})app = Starlette(debug=True, routes=)

FastAPI è in realtà costruito su Starlette, aggiungendo comodità di sintassi e funzionalità aggiuntive. Per la maggior parte delle squadre FastAPI è probabilmente un posto migliore per iniziare, ma Starlette offre il massimo controllo e un potente set di primitive.

Bottom line: Se vuoi lavorare vicino al metallo con i tuoi strumenti asincroni, Starlette è un ottimo punto di partenza.

Tornado

Tornado è un vecchio framework web asincrono, creato ben prima che le funzionalità di asyncio fossero inserite in Python. Originariamente creato da FriendFeed e rilasciato per la prima volta nel 2009, Tornado è una soluzione collaudata per il ridimensionamento in decine di migliaia di connessioni aperte in Python.

Il nucleo di Tornado è un modello di applicazione altamente personalizzabile con forti librerie di rete sottostanti. Esso comprende il routing, templating, sessione e gestione dei cookie, supporto nativo WebSocket, caratteristiche di sicurezza e ha una gamma matura di opzioni per diversi datastore. È meno completo di qualcosa come Django ma ha molte più funzionalità integrate rispetto a un tipico microframework. Tornado utilizza metodi in stile verbo su richiesta classi gestore, quindi si presta a uno stile di sviluppo più orientato agli oggetti:

import tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world")def make_app(): return tornado.web.Application()if __name__ == "__main__": app = make_app() app.listen(8888) tornado.ioloop.IOLoop.current().start()

Tornado continua ad essere attivamente migliorato e mantenuto, con una comunità solida. E ‘ utilizzato da Facebook, Quora, e altri nella loro architettura di produzione.

Tornado 6 + utilizza asyncio sotto il cofano e richiede Python 3.5+, ma Tornado 5 può essere utilizzato con Python 2.7 e versioni successive. In esecuzione su Python 3.5+, le coroutine asincrone Tornado utilizzano la sintassi nativa `async` / `await`. Per le versioni precedenti, Tornado offre una sintassi generatore che ha capacità simili. In particolare, Tornado ha un ponte maturo per Twisted, che consente di eseguire entrambe le app e le librerie Twisted in cima a Tornado.

Bottom line: Una soluzione collaudata per il ridimensionamento in un numero enorme di richieste simultanee, Tornado vale la pena esplorare se si desidera un’opzione consolidata con una comunità forte, sono legati a basi di codice più vecchie o devono utilizzare versioni precedenti di Python.

Quale framework web Python è il migliore per te?

Come dovrebbe essere chiaro da questo elenco, ci sono molte buone opzioni. In effetti, ci sono molti altri framework disponibili per Python – abbiamo intenzionalmente limitato questo articolo ai soli framework che riteniamo valgano la pena considerare nel 2020.

Un buon punto di partenza sono i criteri che abbiamo menzionato all’inizio di questo articolo. Quali sono i tuoi obiettivi? Stai cercando di sperimentare qualcosa di nuovo, costruire qualcosa in fretta con la tecnologia collaudata, o imparare nuove competenze? Quante persone lavoreranno sulla tua base di codice e per quanto tempo sarà in giro? Questi sono tutti indizi utili per la scelta giusta.

non C’è un quadro che è perfetto per tutti, ma qui sono alcuni suggerimenti di carattere generale:

  • Se si sta cercando di iniziare subito con una consolidata soluzione in cui le risorse sono facili da trovare, usare Django o Pallone
  • Se ti piace il piccolo di partenza e la comprensione (o di controllo) tutte le parti dell’applicazione, esplorare la Piramide, Pallone o CherryPy
  • Se si sta costruendo un API o microservice che dovrà essere altamente performante, guardare in Falcon, FastAPI o Sanic.
  • Se sei un programmatore principiante o semplicemente imparare a fare sviluppo web, web2py o Bottiglia sono di facile modi per iniziare
  • Se si sta cercando di esplorare-e-via quadri, con nuove idee e modi di fare le cose, check-out Masonite e FastAPI

hai trovato questo articolo utile o vedere qualcosa che non è d’accordo con o pensare che dovrebbe essere migliorato. Fatecelo sapere, apprezziamo il vostro feedback!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.