9 parimat Pythoni raamistikku väikestest ettevõtetele mõeldud rakenduste loomiseks

Python on nii lõbus mänguasi kui ka hirmutav leegiheitja. Sama kehtib ka selle kohta, mida saate Pythoni abil teha.


Pythoni armastavad nii harrastajad, teadlased kui ka arhitektid.

Kuratlikult lihtne on alustada, sellel on kõrgema astme abstraktsioonid ja metaprogrammeerimisvõimalused suurte ja keerukate süsteemide loomiseks ning sellel on veoautokoorum raamatukogusid, millega saab teha peaaegu kõike. Muidugi, samaaegsuse ja tugeva kirjutamise osas on piiranguid, kuid võite neist ümber hoida.

Selles artiklis käsitleme mõnda parimat Pythoni raamistikku, kui tegemist on suurte ja väikeste veebirakenduste loomisega.

Django

Django raamistik on ajaproovile vastu pidanud Pythoni kogukonna veebikeskkonna raamistikku. Kui ründasite Pythoni arendajat nende une ajal ja sundisite neid püstolist veebirakendust üles ehitama, jõudsid nad automaatselt Django juurde viisini, kuhu Rubyist Rails jõuab..

Ja selleks on hea põhjus. Django on, nagu sildikirjas öeldakse, „tähtaegadega perfektsionistide veebiraamistik“. Seda nimetatakse nn patareide komplektiks (sarnaselt sellele, kuidas Python on patareidega kaasasolev keel), mis pakub kõiki tavalisi funktsioone karbist välja.

Kui need funktsioonid on sisse küpsetatud, vähendab Django arenguaega massiliselt:

  • Käepärane ja meeldiv ORM, ränded loovad ja rakendavad raamistik automaatselt.
  • Tellingud teie mudelitel põhineva administraatori paneeli automaatse genereerimise jaoks.
  • Küpsiste, seansside, vahetarkvara, mallide jms tugi.
  • Turvafunktsioone, näiteks XSS-i ennetamine, CRSF-i ennetamine jne, rakendatakse automaatselt.
  • Töötab praktiliselt kõigi seal asuvate andmebaasidega (adaptereid on lihtne leida, kui ametlikku tuge pole)
  • Esmaklassiline tugi geograafiliste andmete ja ruumiliste päringute jaoks GeoDjango

Ja palju, palju muud. Piisab, kui öelda, et Django on täiuslik ja sõbralik veebiraamistik.

Kas Django on teie jaoks?

Absoluutselt jah.

Django on mõistlik kõigil kasutusjuhtudel, olgu tegemist kiire prototüüpide koostamise või ettevõtte rakenduse kavandamisega. Ainus töötlemata serv, millega kokku puutute, on raamistiku struktuur. Kuna Django paindub tahapoole, et teie jaoks oleks kiire ja hõlbus areneda, paneb see arendajale oma struktuuri (kontseptsiooni nimega „konventsiooni konfiguratsioon”), millega te ei pruugi nõus olla. Näiteks kui soovite asendada Django ORM millegi muuga (näiteks SQL Alchemy), olge üllatusteks valmis.

Kas olete huvitatud Django ja Pythoni täielikust virna arendajaks saamisest? – Vaadake seda fantastiline veebikursus.

Kolb

Samal ajal kui Django võtab Pythoni veebiarenduses peaaegu kogu mõtte jagamise, Kolb on tugev kandidaat.

Vastupidiselt Djangole on Flask mikroraamistik, mis tähendab, et see keskendub väheste, minimaalsete asjade korrastamisele ja jätab ülejäänud teile. See “ülejäänud on teie enda otsustada” võib tekitada pettumust või rõõmu, sõltuvalt sellest, millised on teie eesmärgid. Neile, kes teavad, mida nad teevad, ja soovivad oma veebirakendusi meisterlikult meisterdada, valides nende valitud komponendid, on Flask jumalanna.

Kolb pakub järgmisi funktsioone:

  • Marsruutimine, mallide koostamine, seansihaldus ja muud kasulikud funktsioonid.
  • Ühiku testimise täielik tugi
  • Minimaalne, ühendatav arhitektuur
  • Esimese klassi REST-i tugi
  • Toetus Blueprintsile, Flaski ainulaadne väikede veebirakenduste arhitektuur
  • Valige oma paketid ORM-i, rände jms jaoks.
  • Paindlik rakenduse struktuur – pange oma failid sinna, kus nad teile kõige mõistlikumad on
  • Staatiline faili esitamine
  • WGSI-ga ühilduv

Kas teie jaoks on kolb?

Nagu juba öeldud, on Flask minimaalne veebiraamistik, kõik on jagatud üksikuteks komponentideks, mida saate välja vahetada. Kui teil on kiire prototüübi loomine, kulutate palju aega andmebaasi, kaustade struktuuri, marsruutimise jms kohta triviaalsete otsuste tegemisele, mis võivad osutuda vastupidiseks. Kolb töötab kõige paremini siis, kui olete tegelenud stabiilse ja tõsise keskmise või suuremahulise projektiga, eriti REST API-dega.

Pudel

Kui arvasite, et Flaski lähenemine pole piisavalt minimaalne ja soovite ikkagi rohkem kontrolli, öelge tere Pudel.

Pudel ribad välja veelgi, kuni punktini, kus ainus sõltuvus on Pythoni standardkogu. See tähendab, et seda ei tohi installida ega installida, ehkki peate seda tõenäoliselt kaua tegema. Sellepärast paistab pudel mõne inimese jaoks silma järgmiselt:

  • Ühe faili juurutamine. Jah, kogu teie rakendus asub ühes “.py” -failis.
  • Puuduvad välised sõltuvused. Kui teil on õige Pythoni versioon installitud, on teil hea minna.
  • Tarnib oma mallmootori, mida saab vahetada koos Jinja2, Mako või Cheetahiga.
  • Vormide, päiste, küpsiste ja failide üleslaadimise tugi.
  • Sisseehitatud veebiserver, mida saab hõlpsasti asendada.

Kas pudel on teie jaoks?

Kui teete tõesti väikest rakendust (näiteks vähem kui 500 koodirida), millel pole erinõudeid, võib pudel teile palju mõtet pakkuda. See on täielik mõttetu lähenemine veebirakenduste loomisele, kuid praktikas leiate, et teid takistab rohkem kui Bottle aitab. Põhjus on see, et reaalne maailm on alati muutuv ja enne, kui seda tead. Uued nõuded langeb pähe. Sel juhul muutuks kõik ühte faili panemine vaeva nägema.

Kui arvate, et pudel ja kolb on peaaegu sarnased, on teil õigus. Ettepanekud liitmine need kaks pärinevad aastast 2012 ja isegi Flaski looja Armin on sellega nõus. Pudeli looja Marcel säilitab ühetoimelise lähenemisviisi tõttu siiski range ideoloogilise eristuse ja nõuab, et need kaks jääksid eraldi.

Zope

Zope on keeruline seletada, kuid ma üritan. Jah, see on veebiraamistik, mida saab kasutada suurte või väikeste rakenduste ehitamiseks, kuid see pole veel kõik. Zope on rohkem platvorm, mis koosneb Zope filosoofia alusel loodud ja Zope Corporationi poolt hooldatud tööriistadest (kaasa arvatud veebiraamid).

Zope’il on mitu huvitavat komponenti ja funktsiooni, mis sobivad ettevõtte rakenduste arendamiseks:

  • Komponent, mis registreerib ja avastab arhitektuuri suure rakenduse konfigureerimiseks.
  • ZODB – (ainus) Pythoni objektide andmebaas objektide natiivseks salvestamiseks.
  • Sisuhaldussüsteemide täieõiguslik raamistik ja standardid
  • Veebirakenduste raamistike komplekt – kanoonilist nimetatakse endiselt Zope’iks, ehkki selle peale on ehitatud mitu uut raamistikku (näiteks Grok).
  • Tugevad standardid tarkvara arendamiseks, vabastamiseks ja hooldamiseks.

Kas Zope on teie jaoks?

Kui olete tõeliselt suurte rakenduste loomise keskkonnas, mis on hästi struktureeritud, on Zope hea. See tähendab, et ka teil on suur osa teemadest. Sel ajal, kui Zope areneb, on kogukond tõesti väike, nii et paljud Pythoni arendajad pole sellest isegi kuulnud. Õppematerjalide ja ulatusliku dokumentatsiooni leidmine on keeruline, nii et olge valmis kaevama palju (ehkki kogukond on sellest tõesti abi!). Samuti ei pruugi teiega kokku puutunud Pythoni arendajad soovida Zope’i õppida ja oma oskuste kogumit “lahjendada”.

TurboGears

TurboGears on väga paindlik raamistik, millel on tõeliselt komposteeritav arhitektuur. See on raamistik, mis vastab teie vajadustele ja saate seda kasutada ühe failirakenduse või mitme üürilise behemoti ehitamiseks.

TurboGearsil on mõned elegantsed omadused, millest mõned kas puuduvad populaarsetes raamides (näiteks Django) või on neid raske üles ehitada:

  • Mitme andmebaasi esmaklassiline tugi
  • Mitme andmebaasi tehingud
  • Ülimalt modulaarne – alustage ühe failiga ja mõõtke välja nii palju kui vaja
  • Võimas ORM (SQLAlchemy, mis on küpsem ja võimekam kui Django ORM)
  • Ühendatav arhitektuur põhineb WSGI spetsifikatsioonil
  • Sisseehitatud tugi andmebaaside varjestuseks
  • Funktsioonikeskne liides vastandina sügavatele ja jäikadele objektorienteeritud hierarhiatele.

Kas TurboGars on teie jaoks?

Kui soovite õnnelikult areneda ja soovite proovitud, küpset ja vastupidavat raamistikku, mis eemalduks “vinge, järgmise põlvkonna” meediumimürast ja kõigest sellest, sobib TurboGears suurepäraselt. Seda austatakse kogukonnas ja sellel on täielik ja ulatuslik dokumentatsioon. Muidugi, TurboGarsil pole oma arvamust, see tähendab, et esialgne seadistamise ja konfigureerimise aeg võib olla rohkem, kuid see on ideaalne raamistik ettevõtte rakenduste arendamiseks.

Web2py

Web2py algas hobiprojektina ja ilmus 2007. aastal. Selle eesmärgid on muuta veebiarendus hõlpsaks ja kõigile kättesaadavaks.

Selle tulemusel võtab Web2py nullist sõltuvuse lähenemise äärmusesse – sellel pole nõudeid, pole vaja midagi installida ja see sisaldab täisfunktsionaalset veebipõhist redaktorit nii arendamiseks, andmebaaside haldamiseks kui ka juurutamiseks.

Võite peaaegu mõelda sellele kui Android Studio’ile, mis on rohkem terviklik keskkond kui lihtsalt raamistik. Mõned toredad funktsioonid, mis Web2py-l on, on järgmised:

  • Praktiliselt puudub kõver.
  • Minimaalne tuum (ainult 12 objekti), mida saab isegi meelde jätta!
  • Puhas-Pythoni mallimine
  • Kaitse XSS, CSRF ja muude rünnakute eest
  • Meeldiv ja järjepidev API

Kas Web2py on teie jaoks?

Web2py on stabiilne ja lõbus raamistik, kuid seda on raske soovitada muude võimaluste (nt Django, Flask jne) taustal. Töökohti pole peaaegu üldse ja ühikute testimise lugu pole suurepärane. Sellegipoolest võib teile meeldida koodi API ja raamistiku pakutavad üldised kogemused, eriti kui loote REST-i API-sid.

CherryPy

CherryPy on veel üks mikroraam, mille eesmärk on pakkuda põhiraamistiku funktsioone ja kiiresti teelt välja tulla.

Ehkki see on võrreldav teiste mikroraamidega, näiteks Flask, on CherryPy uhkeldav mõnevõrra:

  • See sisaldab sisseehitatud mitme keermega serverit (midagi, mis jääb Flaski sooviloendisse)
  • (Üksik) veebiserver saab majutada mitut rakendust!
  • Esitage oma rakendust WSGI-rakendusena (liidestamiseks teiste WSGI-rakendustega) või tavalise HTTP-serverina (mis toimib paremini)
  • Esmaklassiline tugi profiilide koostamisel ja ühiskatsete tegemisel
  • Töötab PyPy (tõeliste jõudluse junkrite jaoks), Jython ja isegi Android

CherryPy teeb seda kõike ja siis tavalist, mida veebiraamistikult oodata võiksite.

Kas CherryPy on teie jaoks?

Kui ehitate peamiselt RESTful teenuseid, on CherryPy palju tõsisem pretendent kui Flask. See on kümmekond aastat vana raamistik, mis on kenasti küpsenud ja sobib nii väikesteks kui ka suurteks rakendusteks.

Sanic

Sõlme tõus ja selle asünkroonne programmeerimismudel jätsid paljud kogukonnad end tagaplaanile, kaasa arvatud Python. Vastuseks on radarile ilmunud asünklike veebiraamide tuuleke, Sanic olles üks neist.

Sanic on Flaskist suuresti inspireeritud, niivõrd kui ta laenas marsruudi sisekujundajaid, Blueprintsi ja muid põhialuste konksuliini ning uppujaid. Ja nad ei häbene seda tunnistada. See, mida Sanic lauale toob, kui olete Flaski fänn, on tõene, et see ei blokeeri I / O-d, et täita sõlmerakenduse toimivustaset. Teisisõnu, Sanic on Kolb koos asünkriga / ootavad tuge!

Võrreldes CherryPy-ga on Sanicil uskumatu jõudluse eelis (mõelge vaid, kuidas see Flaskile vastu peaks!). Vaadake järgmisi testitud tulemusi DataWeave:

Nagu näete, kui samaaegsusnumbrid hakkavad ületama 50 sekundis, siis CherryPy lämmatab ja tõstab kõrge tõrkeprotsendi.

Kas teie jaoks on Sanic?

Kuigi Sanici jõudlusomadused löövad kõik muu veest välja, ei pruugi see olla teie järgmise projekti jaoks parim valik. Peamine põhjus on asünkroonsete raamatukogude puudumine. Suurem osa olemasolevatest Pythoni tööriistadest ja raamatukogudest kirjutati ühe keermega CPython versioonile, ilma et oleks vaja arvestada suure samaaegsuse või asünkroonsete toimingutega. Kui näiteks teie lemmik ORM ei toeta asünkroonseid toiminguid, saab kogu Sanicu kasutamise mõte lüüa.

Nende küpsuse ja saadavuse põhjuste tõttu ei uurita me Pythonis enam asünkilisi raamistikke.

Masoniit

Sattusin selle raamistikuga kokku mõni aeg tagasi ja arvasin, et see on samm õiges suunas. Pärast seda on versioon 2.0 välja antud ja ma tunnen, et aeg on lõpuks kätte anda Masoniit natuke armastust.

Lihtsamalt öeldes on Masonite Laraveli Pythoni versioon (kuulus PHP raamistik, juhuks, kui te ei teadnud). Miks see oluline on? See on oluline, kuna Laravel on üles ehitatud Ruby on Rails põhimõttele ja need kaks raamistikku võimaldavad mitte-Ruby devidel kogeda asjade tegemise “Rails Way”.

Laraveli (ja mingil määral ka Rails) arendajad tunnevad end kodus otse ning poleks valmis ja tegutseksid sõna otseses mõttes ajaga. Kui ma Masoniiti proovisin (ja ma esitasin numbri või kaks, sealhulgas vea!), Suutsin ehitada REST-i API-sid täpselt nulli mõtlemisega, kuna minu Laraveli lihasmälu tegi kõike.

Patareidega kaasasoleva täispaki raamistikuna toob Masonite lauale mitu huvitavat:

  • Aktiivse salvestusstiili ORM
  • Andmebaaside ränne (erinevalt Djangost peab arendaja looma)
  • Võimas IoC konteiner sõltuvuse süstimiseks
  • Oma CLI (nn käsitöö) tellingute tegemiseks ja tööülesannete täitmiseks
  • Esmaklassiline tugi ühiku testimisel

Masoniidi suurim “konkurent” on Django, kuna kogukond annab endast parima, et raamistikku võimalikult lihtsaks, veetlevaks ja järgmiseks suureks asjaks turustada. Kas see ületab Djangot, näitab aeg (kui te minult küsite, siis on see korralik pilt), kuid neid kahte võrdleva arutelu jaoks vaata siin ja siin.

Kas teie jaoks on masoniit?

Masoniit on Djangoga võrreldes endiselt laps, nii et Django kohal ei saa seda kuidagi soovitada. See tähendab, et kui olete tegelenud Railssi (või Laraveli) asjadega, siis oleksite te masonite pakutav. See on ideaalne prototüüpide kiireks ehitamiseks, mis vajavad kõike eelhäälestatud ja hõlpsasti vahetatavat.

Järeldus

Seal pole suurtest ja väikestest Pythoni veebiraamidest puudust. Ehkki väikese projekti jaoks saate midagi palju korjata, on ettevõtte rakendusel nõudmisi, mida paljud neist raamistikest ei suuda täita. Kui te küsite minult, siis ettevõtluse arendamiseks tulevad meelde Django (mingil määral), Zope ja TurboGears. Ja isegi nende seas kaldun TurboGarsi poole.

Sellegipoolest võib iga oma soola väärt arhitekt valida mikroraami ja rullida nende arhitektuuri. Ja see toimub praktikas üsna palju, mis selgitab Flaski ja sarnaste ideede edu.

Kui olete algaja, siis see veebikursus oleks kasulik Pythonit õppida.

Sildid:

  • 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