9 najboljših okvirov Python za gradnjo malih do podjetniških aplikacij

Python je hkrati zabavna igrača in zastrašujoč ogenj. Enako velja za tisto, kar lahko storite s Python-om.


Python imajo radi tako ljubitelji, znanstveniki in arhitekti.

Prekleto je enostavno začeti, ima abstrakcije višjega reda in možnosti metaprogramiranja za gradnjo velikih in zapletenih sistemov in ima veliko knjižnic tovornjakov, ki delajo karkoli. Seveda obstajajo omejitve, ko gre za sočasnost in močno tipkanje, vendar jih lahko obvladate.

V tem članku bomo predstavili nekaj najboljših okvirov Python-a, ko gre za gradnjo velikih in majhnih spletnih aplikacij..

Django

The Django Framework je zdržal preizkus časovnega prenosa spletnega okvira za skupnost Python. Če ste v snu napadli razvijalca Pythona in ga prisilili, da je v strelišču izdelal spletno aplikacijo, bodo samodejno dosegli Django tako, kot bo dosegel Rubyist za Rails.

In za to obstaja dober razlog. Django je, kot pravi slogan, “spletni okvir za perfekcioniste z roki.” To je tako imenovani okvir z vključenimi baterijami (podobno kot to, kako je Python jezik z baterijami), ki zagotavlja vse običajne funkcionalnosti.

Django s svojimi lastnostmi močno zmanjšuje čas razvoja:

  • Priročen in prijeten ORM z migracijami, ki jih okvir ustvari in samodejno uporabi.
  • Odri za samodejno generiranje skrbniške plošče glede na vaše modele.
  • Podpora za piškotke, seje, vmesno programsko opremo, predloge itd.
  • Varnostne funkcije, kot so preprečevanje XSS, preprečevanje CRSF itd., Se uporabijo samodejno.
  • Deluje s praktično vsemi bazami podatkov tam (enostavno je najti adapterje, kjer uradna podpora ne obstaja)
  • Prvovrstna podpora za geografske podatke in prostorske poizvedbe GeoDjango

In še veliko, veliko več. Dovolj je reči, da je Django popoln in prijazen spletni okvir.

Je Django zate?

Vsekakor ja.

Django je odličen smisel za vse primere uporabe, pa naj gre za hitro izdelavo prototipov ali načrtovanje poslovne aplikacije. Edini grobi rob, na katerega boste naleteli, je struktura okvira. Ker se Django upogne nazaj, da bi bil razvoj hiter in enostaven za vas, razvijalcu naloži svojo strukturo (koncept, imenovan „konvencija nad konfiguracijo“), s katerim se morda ne strinjate. Na primer, če želite Django ORM zamenjati z nečim drugim (recimo SQL Alchemy), bodite pripravljeni na presenečenja.

Vas zanima, da postanete razvijalec polnih skladov z Django in Python? – Oglejte si to fantastičen spletni tečaj.

Bučka

Medtem ko Django prevzame skoraj vso miselnost pri spletnem razvoju Pythona, Bučka je močan kandidat.

Flask je v nasprotju z Django “mikrookvir”, kar pomeni, da se osredotoča na to, da bi nekaj uredili, minimalne stvari, ostalo pa prepustite vam. To “ostalo je odvisno od vas” je lahko vznemirjenje ali veselje, odvisno od ciljev. Za tiste, ki vedo, kaj počnejo in želijo ljubeče oblikovati svoje spletne aplikacije, tako da izberejo komponente po svoji izbiri, Flask je božji bog.

Bučka ponuja naslednje funkcije:

  • Usmerjanje, predloge, upravljanje sej in druge uporabne funkcije.
  • Popolna podpora za testiranje enot
  • Minimalna, vtična arhitektura
  • Prvovrstna podpora REST
  • Podpora za Načrte, edinstvena arhitektura Flask za majhne spletne aplikacije
  • Izberite svoje pakete za ORM, selitve itd.
  • Prilagodljiva struktura aplikacije – datoteke postavite tja, kjer so vam najbolj smiselne
  • Prikazovanje statičnih datotek
  • Skladno z WGSI

Je Flask za vas?

Kot že rečeno, Flask je minimalen spletni okvir z vsemi deli na posamezne komponente, ki jih lahko zamenjate. Če se vam mudi, da sestavite prototip, boste porabili veliko časa za nepomembne odločitve o bazi podatkov, strukturi map, usmerjanju itd., Kar se lahko izkaže za kontraproduktivno. Bučka najbolje deluje, če ste pripravljeni na stabilen, resen projekt srednje velikih in velikih, zlasti API-jev REST.

Steklenica

Če menite, da pristop Flask ni bil dovolj minimalen in da želite imeti še več nadzora, pozdravite Steklenica.

Steklenica še bolj črpa, do točke, ko je edina odvisnost standardna knjižnica Python. To pomeni, da tega ne namestite noben pip ali namestite pip, čeprav ga boste najverjetneje morali opraviti predolgo. To je razlog, zakaj steklenica pri nekaterih izstopa:

  • Uvajanje ene datoteke. Da, celotna aplikacija živi v eni datoteki .py.
  • Brez zunanjih odvisnosti. Če imate nameščeno pravo različico Python, ste pripravljeni.
  • Dobavlja svoj predlogo motor, ki ga je mogoče zamenjati z Jinja2, Mako ali Cheetah.
  • Podpora za obrazce, glave, piškotke in nalaganje datotek.
  • Vgrajen spletni strežnik, ki ga je mogoče enostavno zamenjati.

Je steklenica zate?

Če izdelujete resnično majhno aplikacijo (recimo manj kot 500 vrstic kode) brez posebnih zahtev, bo Steklenica morda veliko smisla za vas. To je popoln pristop brez neumnosti pri ustvarjanju spletnih aplikacij, toda v praksi boste ugotovili, da ste bolj ovirani, kot vam pomaga Bottle. Razlog je v tem, da se resnični svet vedno spreminja in preden to spoznaš. Na glavo vam bodo padle nove zahteve. Na tej točki bi postavilo vse stvari v eno samo datoteko.

Če menite, da sta si Bottle in Flask skoraj podobni, imate prav. Predlogi za spajanje dva segata v leto 2012 in s tem se strinja celo Armin, ustvarjalec Flask-a. Vendar Marcel, ustvarjalec Bottle, ohranja strogo ideološko razlikovanje zaradi pristopa z eno datoteko in vztraja, da dva ostaneta ločena.

Zope

Zope je težko razložiti, vendar bom poskusil. Da, to je spletni okvir, ki ga lahko uporabimo za izdelavo velikih ali majhnih aplikacij, vendar to še ni vse. Zope je bolj platforma, ki jo sestavljajo orodja (vključeni so tudi spletni okvirji), ustvarjena po filozofiji Zope in ki jih vzdržuje korporacija Zope.

Zope ima več zanimivih komponent in funkcij, primernih za razvoj aplikacij za podjetja:

  • Komponenta registracije in arhitekture odkrivanja za konfiguriranje velike aplikacije.
  • ZODB – (edina) zbirka podatkov Python za samostojno shranjevanje predmetov.
  • Popoln okvir in standardi za sisteme za upravljanje z vsebinami
  • Nabor okvirov spletnih aplikacij – kanonični se še vedno imenuje Zope, čeprav je nad njim zgrajenih več novih okvirov (kot je Grok).
  • Močni standardi za razvoj, izdajo in vzdrževanje programske opreme.

Je Zope zate?

Če potrebujete visoko strukturirano okolje za gradnjo resnično velikih aplikacij, je Zope dobro. Ob tem pa boste naleteli tudi na pravičen delež vprašanj. Medtem ko se Zope še naprej razvija, je skupnost res majhna, kolikor mnogi razvijalci Pythona o njej sploh niso slišali. Iskanje vadnic in obsežne dokumentacije je težko, zato bodite pripravljeni na veliko kopanja (čeprav je skupnost resnično v pomoč!). Razvijalci Pythona, na katere naletite, morda ne bodo želeli učiti Zope in “razredčiti” njihovega nabora spretnosti.

TurboGears

TurboGears je zelo prilagodljiv okvir z resnično sestavljivo arhitekturo. To je okvir, ki se prilagaja vašim potrebam in ga lahko uporabite za izdelavo aplikacije z eno datoteko ali behemota za več stanovanj.

TurboGears ima nekaj elegantnih funkcij, od katerih nekatere niso prisotne v priljubljenih okvirih (kot je Django) ali pa jih je težko sestaviti:

  • Prvovrstna podpora za več baz podatkov
  • Transakcije z več bazami podatkov
  • Zelo modularno – začnite z eno datoteko in pomanjšajte, kolikor potrebujete
  • Zmogljiv ORM (SQLAlchemy, ki je bolj zrel in sposoben od Djangovega ORM-a)
  • Vtična arhitektura temelji na specifikaciji WSGI
  • Vgrajena podpora za strjevanje baze podatkov
  • Funkcijski vmesnik v nasprotju z globokimi, togimi hierarhijami, usmerjenimi v objekt.

Je TurboGears za vas?

Če se želite razvijati srečno in želite preizkušen, zrel in močan okvir proč od medijskega hrupa “super, next-gen” in vsega tega, je TurboGears zelo primeren. V skupnosti je zelo cenjen in ima popolno, obsežno dokumentacijo. Seveda, TurboGears ni prepričan, kar pomeni, da je začetna nastavitev in čas konfiguracije lahko več, je pa to idealen okvir za razvoj aplikacij za podjetja..

Web2py

Web2py se je začel kot hobi projekt, izšel pa je leta 2007. Njeni cilji so omogočiti lažji in dostopen spletni razvoj.

Kot rezultat tega je Web2py do skrajnosti pristop ničelne odvisnosti – nima nobenih zahtev, ničesar namestiti in vključuje popoln spletni urejevalnik za razvoj, upravljanje baz podatkov in uvajanje..

Skoraj si ga lahko omislite kot Android Studio, ki je bolj popolno okolje kot le ogrodje. Nekaj ​​lepih lastnosti, ki jih ima Web2py, so:

  • Skoraj nobene krivulje učenja.
  • Minimalno jedro (samo 12 predmetov), ​​ki ga je mogoče celo zapomniti!
  • Predloga Pure-Python
  • Zaščita pred XSS, CSRF in drugimi napadi
  • Prijeten in dosleden API

Ali je Web2py za vas?

Web2py je stabilen in zabaven okvir, vendar ga je težko priporočiti v primerjavi z drugimi možnostmi, kot so Django, Flask itd. Naloge skoraj ni, in zgodba s testiranjem enot ni odlična. Kljub temu boste morda uživali v kodnem API-ju in v celotni izkušnji, ki jo okvir ponuja, še posebej, če gradite API-je REST.

CherryPy

CherryPy je še en mikrookvir, ki želi zagotoviti osnovno funkcionalnost okvirja in se hitro umakniti.

Čeprav je primerljiv z drugimi mikrookvirji, kot je Flask, se CherryPy ponaša z nekaj prepoznavnosti:

  • Vsebuje vgrajen večnamenski strežnik (nekaj, kar ostane na seznamu želja Flask)
  • (Enojni) spletni strežnik lahko gosti več aplikacij!
  • Uporabite svojo aplikacijo kot aplikacijo WSGI (za vmesnik z drugimi aplikacijami WSGI) ali navaden strežnik HTTP (ki deluje boljše)
  • Prvovrstna podpora za profiliranje in testiranje enot
  • Deluje na PyPy-ju (za prave zmogljive narkomane), Jythonu in celo Androidu

CherryPy naredi vse to in potem običajno, kar bi pričakovali od spletnega okvira.

Je CherryPy za vas?

Če večinoma gradite RESTful storitve, je CherryPy veliko bolj resen konkurent kot Flask. To je desetletje staro ogrodje, ki je lepo dozorelo in je primerno tudi za majhne in velike aplikacije.

Sanič

Porast Node in njen asinhroni model programiranja so pustile številne skupnosti za seboj, vključno s Pythonovim. V odgovor se je na radarju pojavila buta asinhronskih spletnih okvirov, Sanič biti eden izmed njih.

Sanic močno navdihuje Flask, kolikor si je sposodil dekoraterje poti, Načrte in druge osnove kljukice in vrtanja. In tega jih ni sram priznati. Kar Sanic prinese k mizi, če ste oboževalec bučke, je resnično, da ne blokira V / I za doseganje ravni zmogljivosti aplikacije Node. Z drugimi besedami, Sanic je bučka z async / čaka na podporo!

V primerjavi s CherryPy ima Sanic neverjetno zmogljivo prednost (samo pomislite, kako bi šlo proti Flasku!). Oglejte si naslednje rezultate, ki jih je preizkusil podjetje DataWeave:

Kot vidite, CherryPy, ko se številke sočasnosti začnejo presegati 50 na sekundo, praktično zaduši in dvigne visoko stopnjo odpovedi.

Je Sanic zate?

Medtem ko karakteristike delovanja Sanic vse drugo pihajo iz vode, morda ni najboljša izbira za vaš naslednji projekt. Glavni razlog je pomanjkanje asinhronih knjižnic. Večina obstoječih orodij in knjižnic Python je bila napisana za različico z enim navojem CPython, brez predvidevanja za visoko sočasnost ali asinhrono delovanje. Če na primer vaš najljubši ORM ne podpira asinhronih operacij, je celoten namen uporabe Sanic poražen.

Zaradi teh zrelosti in razpoložljivosti ne bomo preučevali več okvirov asinhronizacije v Pythonu.

Masonit

Pred časom sem naletel na ta okvir in mislil, da je to korak v pravo smer. Od takrat je bila izdana različica 2.0 in menim, da je končno napočil čas Masonit nekaj ljubezni.

Preprosto povedano, Masonite je Python-ova različica Laravela (slavni okvir PHP, če tega še niste vedeli). Zakaj je to pomembno? Pomembno je, ker je bil Laravel zgrajen na principih Ruby on Rails, in skupaj ta dva okvira omogočata ne-Ruby-jevim razvijalcem, da izkusijo “Rails Way” početja.

Razvijalci Laravela (in v določeni meri Rails) se bodo počutili kot doma in bi se dobesedno začeli izvajati. Ko sem poskusil Masonite (in sem vložil težavo ali dve, vključno z napako!), Sem lahko sestavil REST API-je s točno nič razmišljanja, ker je moj mišični spomin Laravel naredil vse.

Podjetje Masonite kot polni paket z vključenimi baterijami prinaša na mizo nekaj zanimivih stvari:

  • ORM v slogu aktivnega snemanja
  • Migracije baze podatkov (ki jih mora za razliko od Django ustvariti razvijalec)
  • Zmogljiv vsebnik IoC za injiciranje odvisnosti
  • Lastna CLI (imenovana “plovila”) za gradbene odre in tekaške naloge
  • Prvovrstna podpora za testiranje enot

Največji “tekmec” za Masonite je Django, saj se skupnost potrudi, da je ogrodje lažje, všečno in naslednja velika stvar. Ali bo to preseglo Django, bo čas pokazal (če vprašate mene, ima spodoben posnetek), toda za razpravo, ki primerja to dvoje, glej tukaj in tukaj.

Je Masonit zate?

Masonite je v primerjavi z Django še vedno dojenček, zato ga ni mogoče priporočiti nad Django. Če bi se odločili za to, da bi se lotili stvari Rails (ali način Laravel), boste cenili to, kar lahko ponudi Masonite. Idealen je za hitro izdelavo prototipov, ki potrebujejo vse vnaprej konfigurirano in enostavno preklapljanje.

Zaključek

Tu ne manjka spletnih okvirov Python, velikih in majhnih. Medtem ko lahko za majhen projekt poberete skoraj vse, ima podjetniška aplikacija zahteve, ki jih veliko teh okvirov ne more izpolniti. Če mene vprašate, za razvoj podjetij so mi v mislih Django (do neke mere), Zope in TurboGears. Tudi med temi sem nagnjen k TurboGears.

Ob tem lahko vsak arhitekt, vreden svoje soli, pobere mikrookvir in izoblikuje njihovo arhitekturo. In to se v praksi skorajda dogaja, kar pojasnjuje uspeh Flask-a in podobne ideje.

Če ste novinec, potem ta spletni tečaj bi bilo koristno pri učenju Pythona.

Oznake:

  • Python

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