9 cele mai bune cadre Python pentru crearea de aplicații mici pentru întreprinderi

Python este atât o jucărie distractivă, cât și un înfricoșător înfricoșător. La fel se întâmplă și cu ceea ce poți face cu Python.


Python este îndrăgit de pasionați, oameni de știință și arhitecți deopotrivă.

Este al naibii de ușor de început, are abstractizări de ordin superior și capabilități de metaprogramare pentru a construi sisteme mari și complexe și are o mulțime de biblioteci pentru a face aproape orice. Sigur, există limitări atunci când vine vorba de concordanță și dactilografiere puternică, dar puteți lucra în jurul lor.

În acest articol, vom arunca o privire la unele dintre cele mai bune cadre Python atunci când vine vorba de construirea de aplicații web mari și mici.

Django

Django Framework a rezistat testul timpului cadru de acces la web pentru comunitatea Python. Dacă ați agresat un dezvoltator Python în somn și i-a forțat să construiască o aplicație web la punctul de armă, ei vor ajunge automat la Django așa cum va atinge un rubinist pentru Rails.

Și există un motiv bun pentru asta. Django este, după cum spune eticheta, „un cadru web pentru perfecționiștii cu termene limită”. Este ceea ce se numește un cadru „baterii incluse” (la fel ca modul în care Python este un limbaj inclus în baterii), care furnizează toate funcționalitățile comune din cutie.

Cu aceste caracteristici coapte, Django reduce masiv timpul de dezvoltare:

  • O ORM utilă și plăcută, cu migrații create și aplicate automat de cadru.
  • Schelă pentru generarea automată a panoului de administrare pe baza modelelor tale.
  • Asistență pentru cookie-uri, sesiuni, middleware, șabloane etc..
  • Funcțiile de securitate precum prevenția XSS, prevenirea CRSF etc. sunt aplicate automat.
  • Funcționează cu practic toate bazele de date de acolo (este ușor de găsit adaptoare în care nu există suport oficial)
  • Totuși, asistență de primă clasă pentru date geografice și interogări spațiale GeoDjango

Și mult, mult mai mult. Este suficient să spunem că Django este un cadru web plin de prietenie.

Django este pentru tine?

Cu siguranță, da.

Django are un sens excelent pentru toate cazurile de utilizare, indiferent dacă prototipurile rapide sau planificarea unei aplicații de întreprindere. Singura margine aspră pe care o vei întâlni este structura cadrului. Întrucât Django se apleacă înapoi pentru a face dezvoltarea rapidă și ușoară pentru tine, acesta impune structurii sale (un concept numit „convenție asupra configurației”) dezvoltatorului, cu care poate nu ești de acord. De exemplu, dacă doriți să înlocuiți Django ORM cu altceva (să zicem, SQL Alchemy), fiți pregătiți pentru surprize..

Vrei să devii dezvoltator full stack cu Django și Python? – Verifica asta curs online fantastic.

sticlă

În timp ce Django preia aproape tot spațiul mental în dezvoltarea web Python, sticlă este un pretendent puternic.

Spre deosebire de Django, Flask este un „micro-cadru”, ceea ce înseamnă că se concentrează pe corectarea câtorva lucruri minime și care vă lasă restul. Acest „restul depinde de tine” poate fi o sursă de frustrare sau încântare, în funcție de obiectivele tale. Pentru cei care știu ce fac și vor să își creeze cu drag aplicațiile web, alegând componente la alegere, Flask este un zeu.

Flask oferă următoarele caracteristici:

  • Routing, șabloane, gestionarea sesiunilor și alte caracteristici utile.
  • Suport complet pentru testarea unității
  • O arhitectură minimă, conectabilă
  • Suport REST de primă clasă
  • Asistență pentru planuri, asumarea unică a arhitecturii Flask pentru aplicații web minuscule
  • Alegeți pachetele pentru ORM, migrații, etc.
  • Structura flexibilă a aplicațiilor – puneți fișierele acolo unde sunt cele mai importante pentru dvs.
  • Servirea fișierului static
  • Conform WGSI

Este Flacon pentru tine?

Așa cum am spus deja, Flask este un cadru web minim, cu tot ceea ce este împărțit în componente individuale pe care le puteți schimba. Dacă vă grăbiți să construiți un prototip, veți petrece mult timp luând decizii banale în baza de date, structura folderului, rutarea etc., care se pot dovedi contraproductive. Flask funcționează cel mai bine atunci când mergeți la un proiect serios și stabil, de scară medie-mare, în special API-urile REST.

Sticla

Dacă credeți că abordarea lui Flask nu este suficient de minimă și că totuși doriți un control mai mare, spuneți-i salut Sticla.

Sticla se dezlipește și mai mult, până la punctul în care singura dependență este biblioteca standard Python. Acest lucru înseamnă că niciun pip nu instalează acest lucru sau pip instalează asta, deși cel mai probabil ai avea nevoie înainte de mult timp. Iată de ce sticla se evidențiază pentru unii oameni:

  • Desfășurare cu un singur fișier Da, întreaga aplicație trăiește într-un singur fișier „.py”.
  • Nu există dependențe externe. Dacă aveți versiunea Python potrivită, sunteți bine.
  • Furnizează motorul său de modelare, care poate fi schimbat cu Jinja2, Mako sau Ghepard.
  • Asistență pentru formulare, anteturi, cookie-uri și încărcări de fișiere.
  • Server web încorporat, care poate fi înlocuit cu ușurință.

Este sticla pentru tine?

Dacă creați o aplicație cu adevărat mică (să zicem, mai puțin de 500 de linii de cod) fără cerințe speciale, este posibil ca Bottle să aibă mult sens pentru dvs. Este o abordare completă fără sens a creării de aplicații web, dar în practică, veți găsi că sunteți mai împiedicat decât a fost ajutat de Bottle. Motivul este că lumea reală se schimbă mereu și înainte de a o cunoaște. Noi cerințe vă vor fi aruncate pe cap. În acel moment, a pune totul într-un singur fișier ar deveni o corvoadă.

De asemenea, dacă credeți că Bottle and Flask sunt aproape similare, aveți dreptate. Propuneri de fuzionare cei doi datează din 2012 și chiar Armin, creatorul Flask, este de acord cu asta. Cu toate acestea, Marcel, creatorul buteliei, menține o distincție ideologică strictă din cauza abordării cu un singur fișier și insistă ca cei doi să rămână separati.

Zope

Zope este complicat de explicat, dar voi încerca. Da, este un cadru web care poate fi folosit pentru a construi aplicații mari sau mici, dar asta nu este totul. Zope este mai mult o platformă care constă din instrumente (cadre web incluse) create în conformitate cu filozofia Zope și întreținute de Zope Corporation.

Zope are câteva componente și caracteristici interesante potrivite pentru dezvoltarea aplicațiilor pentru întreprinderi:

  • O componentă de înregistrare și arhitectură de descoperire pentru a configura o aplicație mare.
  • ZODB – (singura) bază de date de obiecte pentru Python pentru stocarea obiectelor nativ.
  • Cadru și standarde complete pentru sistemele de gestionare a conținutului
  • Un set de cadre de aplicații web – cel canonic este încă numit Zope, deși mai multe cadre noi (cum ar fi Grok) au fost construite deasupra.
  • Standarde stricte pentru dezvoltarea, eliberarea și întreținerea de software.

Zope este pentru tine?

Dacă sunteți după un mediu puternic structurat pentru construirea de aplicații cu adevărat mari, Zope este bine. Acestea fiind spuse, veți examina și partea dvs. corectă de probleme. În timp ce Zope continuă să evolueze, comunitatea este într-adevăr mică, în măsura în care mulți dezvoltatori Python nici nu au auzit despre asta. Găsirea tutoriale și documentație extinsă este greu, așa că fii pregătit să faci multe săpături în jurul (deși comunitatea este cu adevărat utilă!). De asemenea, este posibil ca dezvoltatorii Python pe care îi întâlniți să nu dorească să învețe Zope și să „dilueze” setul lor de abilități.

TurboGears

TurboGears este un cadru extrem de flexibil, care are o arhitectură cu adevărat compozibilă. Este un cadru care se extinde pe măsura nevoilor dvs. și îl puteți utiliza pentru a crea o aplicație cu un singur fișier sau un model de mai multe chiriașe.

TurboGears are câteva caracteristici elegante, unele dintre ele fie nefiind prezente în cadrele populare (cum ar fi Django) sau sunt greu de construit:

  • Suport de primă clasă pentru mai multe baze de date
  • Tranzacții cu mai multe baze de date
  • Foarte modular – începeți cu un singur fișier și extindeți cât aveți nevoie
  • O ORM puternică (SQLAlchemy, care este mai matură și mai capabilă decât ORM-ul lui Django)
  • Arhitectură conectabilă bazată pe specificația WSGI
  • Suport încorporat pentru clarificarea bazelor de date
  • O interfață bazată pe funcție, spre deosebire de ierarhiile profunde, rigide orientate pe obiecte.

TurboGears este pentru tine?

Dacă doriți să vă dezvoltați fericit și doriți un cadru testat, matur și robust, departe de zgomotul mediatic al „grozavului, al viitorului gen” și de toate acestea, TurboGears este o formă potrivită. Este foarte respectat în comunitate și are o documentație completă și completă. Sigur, TurboGears nu este apreciat, ceea ce înseamnă că timpul inițial de configurare și configurare poate fi mai mult, dar este cadrul ideal pentru dezvoltarea aplicațiilor pentru întreprinderi..

Web2py

Web2py a început ca un proiect hobby și a fost lansat în 2007. Obiectivele sale sunt de a face dezvoltarea web ușoară și accesibilă tuturor.

Drept urmare, Web2py ia abordarea de dependență zero până la extrem – nu are cerințe, nimic de instalat și include un editor complet bazat pe Web pentru dezvoltare, gestionare a bazelor de date, precum și implementare.

Aproape că vă puteți gândi la Android Studio, care este mai mult un mediu complet decât un cadru. Câteva caracteristici frumoase pe care le are Web2py sunt:

  • Practic nu există o curbă de învățare.
  • Nucleu minim (doar 12 obiecte), care pot fi chiar memorate!
  • Modelare Pure-Python
  • Protecție împotriva XSS, CSRF și alte atacuri
  • O API plăcută și consistentă

Este Web2py pentru tine?

Web2py este un cadru stabil și distractiv, dar este greu să îl recomandăm împotriva altor opțiuni precum Django, Flask, etc. Nu există locuri de muncă, iar povestea de testare a unității nu este grozavă. Acestea fiind spuse, s-ar putea să vă bucurați de API-ul de cod și de experiența de ansamblu oferită de cadru, mai ales dacă creați API-uri REST.

CherryPy

CherryPy este un alt microfabrică care își propune să ofere funcționalitate cadru de bază și să iasă rapid din cale.

Deși este comparabil cu celelalte microframuri precum Flask, CherryPy se bucură de o anumită distincție:

  • Conține un server încorporat în mai multe fire (ceva care rămâne în lista de dorințe a Flask)
  • Serverul web (unic) poate găzdui mai multe aplicații!
  • Servește-ți aplicația ca o aplicație WSGI (pentru a interfața cu alte aplicații WSGI) sau un server HTTP simplu (care funcționează mai bine)
  • Suport de primă clasă pentru profilare și testare unitară
  • Funcționează pe PyPy (pentru adevăratele junkies performante), Jython și chiar Android

CherryPy face toate acestea, și apoi obișnuitul pe care îl așteptai de la un cadru web.

CherryPy este pentru tine?

Dacă construiți servicii RESTful în mare parte, CherryPy este un concurent mult mai serios decât Flask. Este un cadru vechi de zece ani care s-a maturizat frumos și este potrivit pentru aplicații mici și mari deopotrivă.

Sanic

Creșterea Node și modelul său asincron de programare au lăsat multe comunități să se simtă în urmă, Python a inclus. Ca răspuns, pe radar au apărut o mulțime de cadre web async, Sanic fiind unul dintre ei.

Sanic este puternic inspirat de Flask, în măsura în care a împrumutat decoratorii de traseu, modelele și alte elemente fundamentale de linie de cârlig și de scurgere. Și nu le este rușine să o recunoască. Ceea ce Sanic aduce în tabel, dacă sunteți fan Flask, este adevărat I / O care nu blochează pentru a atinge nivelurile de performanță ale unei aplicații Node. Cu alte cuvinte, Sanic este Flask cu suport async / așteaptă!

În comparație cu CherryPy, Sanic are un avantaj incredibil de performanță (gândiți-vă doar la modul în care ar merge față de Flask!). Verificați următoarele rezultate testate de DataWeave:

După cum vedeți, odată ce numerele de concordanță încep să depășească 50 pe secundă, CherryPy practic sufocă și crește o rată mare de eșec.

Este sanic pentru tine?

În timp ce caracteristicile de performanță ale lui Sanic aruncă orice altceva din apă, este posibil să nu fie cea mai bună alegere pentru următorul dvs. proiect. Motivul principal este lipsa bibliotecilor asincrone. Cea mai mare parte a instrumentelor și bibliotecilor Python existente au fost scrise pentru versiunea CPython cu un singur fir, fără a fi preconizate pentru operații asincrone sau de concurgență ridicată. Dacă, de exemplu, ORM-ul dvs. preferat nu acceptă operațiuni asincrone, întregul punct al utilizării Sanic este învins.

Din aceste motive de maturitate și disponibilitate, nu vom mai examina cadre asincice în Python.

Masonite

Am dat peste acest cadru cu ceva timp în urmă și am crezut că este un pas în direcția corectă. De atunci, versiunea 2.0 a fost lansată și am impresia că a venit momentul în cele din urmă Masonite ceva iubire.

Mai simplu spus, Masonite este versiunea Python a lui Laravel (un faimos cadru PHP, în caz că nu știai). De ce contează asta? Contează că Laravel a fost construit pe principiile lui Ruby on Rails și, împreună, aceste două cadre permit dezvoltatorilor non-Ruby să experimenteze „Calea Rails” de a face lucrurile.

Dezvoltatorii Laravel (și într-o oarecare măsură, Rails) se vor simți drept acasă și ar fi în funcțiune în cel mai scurt timp. Când am încercat Masonite (și am trimis o problemă sau două, inclusiv o eroare!), Am reușit să construiesc API-uri REST cu gândire exact la zero, deoarece memoria mea musculară Laravel făcea totul.

Fiind un cadru complet cu baterii, Masonite aduce mai multe lucruri interesante pe masă:

  • ORM de stil de înregistrare activă
  • Migrațiile bazelor de date (care, spre deosebire de Django, trebuie create de dezvoltator)
  • Un container IoC puternic pentru injecția de dependență
  • CLI propriu (numit „meșteșug”) pentru schele și executarea sarcinilor
  • Suport de primă clasă pentru testarea unității

Cel mai mare „rival” pentru Masonite este Django, deoarece comunitatea face tot posibilul pentru a comercializa cadrul cât mai ușor, încântător și următorul lucru. Dacă va depăși Django este ceva ce vă va spune timpul (dacă mă întrebați, are o lovitură decentă), dar pentru o discuție care îi compară pe cei doi, vedeți aici și aici.

Este masonit pentru tine?

Masonitul este încă un bebeluș în comparație cu Django, așa că nu există nicio modalitate de a putea fi recomandat în Django. Acestea fiind spuse, dacă ești în cale de a face lucrurile (sau modul Laravel) de a face lucrurile, ai aprecia ce are de oferit masonitul. Este ideal pentru construirea rapidă a prototipurilor care au nevoie de tot ce sunt preconfigurate și ușor de schimbat.

Concluzie

Nu există lipsuri de cadre web Python, mari și mici. Deși puteți alege aproape orice pentru un proiect mic, o aplicație de întreprindere are cerințe pe care nu multe dintre aceste cadre le pot îndeplini. Dacă mă întrebați, pentru dezvoltarea întreprinderii, Django (într-o măsură), Zope și TurboGears sunt ceea ce îmi vine în minte. Chiar și printre aceștia, mă înclin spre TurboGears.

Acestea fiind spuse, orice arhitect în valoare de sare poate să ridice o microfabricare și să-și extindă arhitectura. Și acest lucru se întâmplă cam în practică, ceea ce explică succesul lui Flask și idei similare.

Dacă sunteți un începător, atunci acest curs online ar fi de ajutor să înveți Python.

ETICHETE:

  • Piton

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