9 najboljih Python okvira za izgradnju malih za poslovne aplikacije

Python je i zabavna igračka i zastrašujući plamen. Isto vrijedi i za Python-om.


Python podjednako vole i hobisti, i znanstvenici, i arhitekti.

Lako je započeti s tim, ima apstrakcije višeg reda i metaprogramiranje za izgradnju velikih i složenih sustava i ima biblioteke pune kamiona za obavljanje gotovo svega. Naravno, postoje ograničenja kada je u pitanju konkurentnost i snažno tipkanje, ali možete ih raditi oko njih.

U ovom ćemo članku baciti pogled na neke od najboljih Python okvira kada je riječ o izgradnji velikih i malih web aplikacija..

Django

Django Framework je izdržao test vremenskog okvira “go-to” za web zajednicu Python. Ako ste u snu napali razvojnog programera Pythona i prisilili ih da izrade web-aplikaciju pod oružjem, automatski će posegnuti za Djangom na način na koji će rubinist doći do Rails-a.

I postoji dobar razlog za to. Django je, kako kaže slogan, “web-okvir za perfekcioniste sa rokovima.” To je ono što se naziva okvirom “baterije uključene” (slično kao što je Python jezik uključen u baterije) koji pruža sve uobičajene funkcionalnosti izvan okvira.

Zahvaljujući ovim značajkama, Django snažno skraćuje vrijeme razvoja:

  • Prikladan i ugodan ORM, s migracijama koje kreira i primjenjuje automatski okvir.
  • Skele za automatsku proizvodnju administracijske ploče na temelju vaših modela.
  • Podrška za kolačiće, sesije, srednji softver, predloške itd.
  • Sigurnosne značajke kao što su XSS prevencija, CRSF prevencija itd. Primjenjuju se automatski.
  • Radi s praktično svim bazama podataka (lako je pronaći adaptere tamo gdje službena podrška ne postoji)
  • Vrhunska podrška za zemljopisne podatke i prostorne upite GeoDjango

I puno, puno više. Dovoljno je reći Django je potpuno razvijen, prijateljski mrežni okvir.

Je li Django za tebe?

Apsolutno da.

Django ima izvrstan smisao za sve slučajeve upotrebe, bilo da se radi o brzom prototipiranju ili planiranju poslovne aplikacije. Jedini grubi rub na koji ćete naići je struktura okvira. Budući da se Django naginje prema natrag da bi razvoj bio brz i lak za vas, programeru nameće svoju strukturu (koncept koji se zove „konvencija o konfiguraciji“), s čime se možda nećete složiti. Na primjer, ako Django ORM želite zamijeniti nečim drugim (recimo, SQL Alchemy), budite spremni na iznenađenja.

Zainteresirani ste da postanete full developer s dionicama s Django i Python? – Pogledaj ovo fantastičan internetski tečaj.

boca

Dok Django zauzima gotovo svu pamet u web razvoju Pythona, boca jak je suparnik.

Za razliku od Djanga, Flask je “mikro-okvir”, što znači da se usredotočuje na ispravljanje nekoliko, golih minimalnih stvari, a sve ostalo prepuštate vama. Ovaj “ostatak ovisi o vama” može vam predstavljati frustraciju ili užitak, ovisno o tome koji su vaši ciljevi. Za one koji znaju što rade i žele ljubiti obraditi svoje web aplikacije odabirom komponenti po vlastitom izboru, Flask je božji dar.

Flask nudi sljedeće značajke:

  • Usmjeravanje, predložak, upravljanje sesijama i ostale korisne značajke.
  • Potpuna podrška za testiranje jedinice
  • Minimalna, priključna arhitektura
  • Vrhunska podrška REST-a
  • Podrška za nacrte, Flask-ova jedinstvena arhitektura malenih web aplikacija
  • Odaberite svoje pakete za ORM, migracije itd.
  • Fleksibilna struktura aplikacije – stavite svoje datoteke tamo gdje vam najviše znače
  • Posluživanje statičkih datoteka
  • WGSI kompatibilan

Je li tikvica za tebe?

Kao što je već rečeno, Flask je minimalan web-okvir, sa svime podijeljenim na pojedine komponente koje možete zamijeniti. Ako žurite s izradom prototipa, potrošit ćete puno vremena donoseći trivijalne odluke o bazi podataka, strukturi mape, usmjeravanju itd., A to može biti kontraproduktivno. Tikvica najbolje funkcionira kada ste u stabilnom, ozbiljnom projektu srednjih i velikih razmjera, posebno REST API-jevima.

Boca

Ako ste mislili da Flaskov pristup nije dovoljno minimalan i da biste i dalje voljeli veću kontrolu, pozdravite Boca.

Boca se ističe još više, sve do točke u kojoj je jedina ovisnost Python-ova standardna knjižnica. To znači da ovo ne treba instalirati ni pip niti instalirati pip, iako biste to najvjerojatnije trebali prije dugo. Evo zašto se za neke ljude ističe bočica:

  • Implementacija s jednom datotekom. Da, cijela vaša aplikacija živi u jednoj datoteci “.py”.
  • Nema vanjskih ovisnosti. Ako imate instaliranu pravu verziju Pythona, dobro je otići.
  • Isporučuje svoj templating engine koji se može zamijeniti Jinja2, Mako ili Cheetah.
  • Podrška za obrasce, zaglavlja, kolačiće i datoteke.
  • Ugrađeni web poslužitelj, koji se može lako zamijeniti.

Boca je za vas?

Ako napravite stvarno malu aplikaciju (recimo, manje od 500 redaka koda) bez posebnih zahtjeva, Boca će vam možda imati puno smisla. Potpuni je besmislen pristup stvaranju web aplikacija, ali u praksi ćete naći više ometanja nego što vam pomaže Boca. Razlog je taj što se stvarni svijet uvijek mijenja i prije nego što to znate. Na glavu će vam pasti novi zahtjevi. U tom bi trenutku stavljanje svega u jednu datoteku postalo dosadno.

Također, ako mislite da su Boca i Bočica gotovo slični, u pravu ste. Prijedlozi od stapanje njih dvoje datiraju iz 2012. godine, a čak se i Armin, tvorac Flaska, slaže s tim. Međutim, Marcel, tvorac Boce, održava strogu ideološku razliku zbog pristupa s jednom datotekom i inzistira na tome da njih dvoje ostanu odvojeni.

zope

zope komplicirano je objasniti, ali pokušat ću. Da, to je web-okvir koji se može koristiti za izgradnju velikih ili malih aplikacija, ali to nije sve. Zope je više platforma koja se sastoji od alata (s uključenim mrežnim okvirima) kreiranim po filozofiji Zope i koje održava Zope Corporation.

Zope ima nekoliko zanimljivih komponenti i značajki pogodnih za razvoj poslovnih aplikacija:

  • Komponenta registracije i arhitekture otkrivanja za konfiguriranje velike aplikacije.
  • ZODB – (jedina) objektna baza podataka za Python za izvorno spremanje objekata.
  • Potpuni okvir i standardi za sustave upravljanja sadržajem
  • Skup okvira web aplikacija – kanonski se još uvijek naziva Zope, iako je na njemu izgrađeno nekoliko novih okvira (poput Groka).
  • Strogi standardi za razvoj, izdanje i održavanje softvera.

Je li Zope za tebe?

Ako tražite visoko strukturirano okruženje za izgradnju zaista velikih aplikacija, Zope je dobar. U tom slučaju ćete naići i na vaš fer udio u problemima. Dok se Zope i dalje razvija, zajednica je zaista mala, u mjeri u kojoj mnogi programeri Pythona nisu ni čuli za to. Teško je pronaći vodiče i opsežnu dokumentaciju, stoga budite spremni mnogo kopati (iako je zajednica zaista korisna!). Također, Python-ovi programeri na koje naiđete možda neće htjeti naučiti Zope i “razrijediti” njihov skup vještina.

TurboGears

TurboGears izrazito je fleksibilan okvir koji ima istinski komponirajuću arhitekturu. To je okvir koji se mjeri prema vašim potrebama, a možete ga koristiti za izradu aplikacije s jednom datotekom ili behemota s više stanara.

TurboGears ima neke elegantne značajke, od kojih neke ili nisu prisutne u popularnim okvirima (poput Django) ili su teško graditi:

  • Podrška prve klase za više baza podataka
  • Transakcije s više baza podataka
  • Izuzetno modularno – započnite s jednom datotekom i razmjerajte ih koliko god vam treba
  • Snažan ORM (SQLAlchemy, koji je zreliji i sposobniji od Djangovog ORM-a)
  • Uključna arhitektura zasnovana na WSGI specifikaciji
  • Ugrađena podrška za obradu baze podataka
  • Sučelje usmjereno na funkcije, za razliku od duboke, krute objektno hijerarhije.

Je li TurboGears za vas?

Ako se želite razvijati sretno i želite testirani, zreli i robusni okvir daleko od medijske buke „fenomenalnog, next-gen-a“ i svega ostalog, TurboGears je sjajna kombinacija. U zajednici je vrlo cijenjen i ima potpunu, opsežnu dokumentaciju. Sigurno da TurboGears nije izražen, što znači da početno postavljanje i konfiguracija mogu biti i više, ali to je idealan okvir za razvoj poslovnih aplikacija..

Web2py

Web2py započeo kao hobi projekt, a objavljen je 2007. Njezini ciljevi su učiniti web razvoj lakim i dostupnim svima.

Kao rezultat toga, Web2py do krajnjeg pristupa pristupa nuli ovisnosti – nema nikakvih zahtjeva, ništa za instaliranje i uključuje potpuno opremljeni web-uređivač za razvoj, upravljanje bazama podataka, kao i implementaciju..

Gotovo to možete zamisliti kao Android Studio, što je više cjelovito okruženje nego samo okvir. Neke lijepe značajke koje Web2py imaju su sljedeće:

  • Gotovo da nema krivulje učenja.
  • Minimalna jezgra (samo 12 objekata), koja se čak može pamtiti!
  • Pure-Python predložak
  • Zaštita od XSS, CSRF i drugih napada
  • Ugodan i dosljedan API

Je li Web2py za vas?

Web2py je stabilan i zabavan okvir, ali teško ga je preporučiti u odnosu na druge opcije kao što su Django, Flask, itd. Poslova gotovo da i nema, a priča o testiranju jedinice nije sjajna. U skladu s tim, možda ćete uživati ​​u API-ju koda i općem iskustvu koje okvir nudi, pogotovo ako gradite REST API-je.

CherryPy

CherryPy je još jedan mikrookvir koji ima za cilj pružiti osnovnu funkcionalnost okvira i brzo izaći iz mode.

Iako je usporediv s drugim mikrookvirima poput Flask-a, CherryPy se može pohvaliti nekim razlikovanjem:

  • Sadrži ugrađeni višeslojni poslužitelj (nešto što ostaje na Flask listi želja)
  • (Jedan) web poslužitelj može ugostiti više aplikacija!
  • Poslužite svoju aplikaciju kao WSGI aplikaciju (za sučelje s drugim WSGI aplikacijama) ili običan HTTP poslužitelj (koji radi bolje)
  • Prvoklasna podrška za profiliranje i testiranje jedinice
  • Radi na PyPy-u (za prave performanse narkomane), Jythonu, pa čak i na Androidu

CherryPy radi sve ovo, a onda uobičajeno što očekujete od web okvira.

Je li CherryPy za tebe?

Ako uglavnom gradite RESTful usluge, CherryPy je puno ozbiljniji kandidat od Flaska. To je desetogodišnji okvir koji je lijepo sazrio i podesan je za male i velike aplikacije.

Sanic

Uspon Node-a i njegov asinhroni programski model ostavili su se osjećati zaostajanja mnogih zajednica, uključujući Python. Kao odgovor, na radaru se pojavila bujica asinkronih mrežnih okvira, Sanic biti jedan od njih.

Sanic je snažno nadahnuo Flask, u mjeri u kojoj je posudio uređenje ruta, nacrte i ostale osnove kuke i sudopera. I ne stide ih se priznati. Ono što Sanic donosi u stol, ako ste obožavatelj bočice, istina je da ne blokira I / O kako bi se zadovoljile razine performansi aplikacije Node. Drugim riječima, Sanic je tikvica s async / čekajte podršku!

U usporedbi s CherryPy-om, Sanic ima nevjerojatnu prednost performansi (samo razmislite o tome kako bi se igrao protiv Flask-a!). Pogledajte sljedeće rezultate koje je testirao DataWeave:

Kao što vidite, nakon što brojevi istodobnosti počnu prelaziti 50 u sekundi, CherryPy se praktički guši i baca visoku stopu neuspjeha..

Je li Sanic za tebe?

Iako karakteristike izvedbe Sanic-a izbacuju sve ostalo iz vode, to možda nije najbolji izbor za vaš sljedeći projekt. Glavni razlog je nedostatak asinhronih knjižnica. Većina postojećih alata i knjižnica Python-a pisana je za verziju s jednim navojem CPython, bez predviđanja za velike istodobnosti ili asinhrone operacije. Ako, na primjer, vaš omiljeni ORM ne podržava asinhrone operacije, čitava poanta upotrebe Sanica postaje poražena.

Zbog tih razloga zrelosti i raspoloživosti više nećemo ispitivati ​​okvire asinkronizacije u Pythonu.

Masonite

Prije tog vremena naišao sam na taj okvir i pomislio da je to korak u pravom smjeru. Od tada je objavljena verzija 2.0, i osjećam kao da je konačno došlo vrijeme za to Masonite malo ljubavi.

Jednostavno rečeno, Masonite je Python verzija Laravela (poznati PHP okvir, u slučaju da niste znali). Zašto je to važno? Važno je jer je Laravel izgrađen na principima Ruby on Rails, a zajedno ova dva okvira omogućuju ne-Ruby vragovima da iskuse “Tračnički put” radeći stvari.

Programeri tvrtke Laravel (i u određenoj mjeri Rails) osjećat će se kao kod kuće, a radili bi gotovo doslovno. Kad sam isprobao Masonite (a poslao sam problem ili dva, uključujući i grešku!), Bio sam u mogućnosti sastaviti REST API-je sa točno nula razmišljanja, jer moja memorija Laravel mišića radila sve.

Masonite, kao kompletni okvir s punim bazom, koji sadrži baterije, donosi na stol nekoliko zanimljivih stvari:

  • ORM stil aktivnog snimanja
  • Migracije baze podataka (koje, za razliku od Djanga, mora stvoriti programer)
  • Snažni IoC spremnik za ubrizgavanje ovisnosti
  • Vlastiti CLI (zvan “zanati”) za skele i izvršavanje zadataka
  • Vrhunska podrška za testiranje uređaja

Najveći “suparnik” za Masonite je Django, jer zajednica daje sve od sebe kako bi taj okvir plasirala kao lako, ugodno i sljedeću veliku stvar. Hoće li nadmašiti Django nešto će pokazati vrijeme (ako mene pitate, ima li pristojan snimak), ali za raspravu koja uspoređuje ovo dvoje, pogledajte ovdje i ovdje.

Je li masonski za tebe?

Masonit je još uvijek beba u usporedbi s Djangom, tako da ga nema načina preporučiti u odnosu na Django. To bi moglo reći da, ako idete na Rails (ili Laravel način) činjenja, cijenit ćete ono što Masonite može ponuditi. Idealan je za brzu izradu prototipa za koje je potrebno sve unaprijed konfigurirano i lako ih je prebaciti.

Zaključak

Tamo ne nedostaje Python web okvira, velikih i malih. Iako možete pokupiti gotovo sve za mali projekt, poslovna aplikacija ima zahtjeve koje mnogi od tih okvira ne mogu ispuniti. Ako me pitate, za razvoj poduzeća, Django (u određenoj mjeri), Zope i TurboGears su ono što vam pada na pamet. Čak sam i među njima sklon TurboGearsu.

Ipak, svaki arhitekt vrijedan soli može pokupiti mikrookvir i ugraditi njihovu arhitekturu. A to se prilično događa u praksi, što objašnjava uspjeh Flaska i sličnih ideja.

Ako ste novak, onda ovaj online tečaj bilo bi korisno naučiti Python.

OZNAKE:

  • 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