9 legjobb Python keretrendszer kis- és nagyvállalati alkalmazások készítéséhez

A Python szórakoztató játék és félelmetes lángszóró. Ugyanez vonatkozik a Python-ral is.


A Pythonot amatőrök, tudósok és építészek egyaránt szeretik.

A fenébe is könnyű az indulás, magasabb rendű absztrakciókkal és metaprogramozási képességekkel rendelkezik, hogy nagy és összetett rendszereket építsenek fel, és teherautó-terhelésű könyvtárakkal rendelkezik, amelyek nagyjából bármit megtehetnek. Persze, vannak korlátozások a párhuzamosság és az erőteljes gépelés vonatkozásában, de megkerülheted őket.

Ebben a cikkben megnézzük a Python legjobb keretrendszereinek néhányát, amikor nagy és kicsi webes alkalmazásokat építünk..

Django

Az Django A keretrendszer ellenállt az idő próbájának a Python közösség számára a go-to web keretrendszer számára. Ha alvás közben megtámadtak egy Python-fejlesztőt, és arra kényszerítették őket, hogy építsenek egy webalkalmazást a fegyverrel, akkor automatikusan Django felé jutnak el, ahogyan egy rubinista eléri a Rails-t..

És ennek jó oka van. Django, amint a címke mondja, „a perfekcionisták számára meghatározott webes keret, határidőkkel”. Ez az úgynevezett „elemeket tartalmazó keret” (hasonlóan ahhoz, hogy a Python hogyan működik az elemekkel együtt), amely az összes általános funkcionalitást nem tartalmazza.

Ezeknek a funkcióknak a bevitele után a Django jelentős mértékben csökkenti a fejlesztési időt:

  • Egy praktikus és kellemes ORM, a migráció által a keret által automatikusan létrehozott és alkalmazott migrációkkal.
  • Állványok az adminisztrációs panel automatikus generálásához a modellek alapján.
  • Támogatás a sütikhez, munkamenetekhez, köztes szoftverekhez, sablonokhoz stb.
  • A biztonsági funkciók, például az XSS-megelőzés, a CRSF-megelőzés stb. Automatikusan alkalmazandók.
  • Gyakorlatilag az összes adatbázissal együtt működik (könnyű adaptereket találni, ahol nem létezik hivatalos támogatás)
  • Első osztályú támogatás a földrajzi adatok és a térbeli lekérdezések számára GeoDjango

És még sok más. Elegendő azt mondani, hogy a Django egy teljes körű, barátságos webes keret.

Django az Ön számára?

Teljes mértékben igen.

A Django kiválóan értelmezhető minden felhasználási esetben, akár prototípus készítéséhez, akár vállalati alkalmazás tervezéséhez. Az egyetlen durva él, amellyel találkozni fog, a keret szerkezete. Mivel a Django hátrafelé hajlik, hogy a fejlesztés gyors és egyszerű legyen az Ön számára, a szerkezetét (egy fogalom, amelyet „konfigurációkonfigurációnak neveznek” elnevezéssel) ró a fejlesztőre, amelyhez valószínűleg nem ért egyet. Például, ha a Django ORM-et valami mással helyettesíteni akarja (mondjuk az SQL Alchemy-t), készülj fel a meglepetésekre.

Szeretne teljes verem-fejlesztővé válni a Django és a Python segítségével? – Nézd meg ezt fantasztikus online tanfolyam.

Kulacs

Míg a Django szinte az összes észlelési lehetőséget elfoglalja a Python webfejlesztésében, Kulacs erős versenyző.

A Djangóval ellentétben a Flask egy „mikrokeret”, azaz azt jelenti, hogy néhány, minimális dolgok rendezésére összpontosít, és a többit az ön számára hagyja el. Ez a „a többi rajtad múlik” csalódást vagy örömöt okozhat, attól függően, hogy mi a célja. Azok számára, akik tudják, mit csinálnak, és szeretnék szerető módon elkészíteni a webes alkalmazásukat az általuk választott komponensek kiválasztásával, a Flask isten áldása.

A Flask a következő funkciókat kínálja:

  • Útválasztás, sablonok, munkamenedzsment és egyéb hasznos szolgáltatások.
  • Az egységteszt teljes támogatása
  • Minimális, dugaszolható architektúra
  • Első osztályú REST támogatás
  • Támogatja a Blueprints, a Flask egyedülálló architektúráját az apró webes alkalmazások számára
  • Válassza ki az ORM, az áttérés stb. Csomagjait.
  • Rugalmas alkalmazási felépítés – tegye fájljait a leginkább értelmezővé
  • Statikus fájlkiszolgálás
  • A WGSI-kompatibilis

A lombik az Ön számára?

Mint már említettük, a Flask egy minimális webes keret, mindent külön összetevőkre bontva, amelyeket kicserélhet. Ha siet a prototípus felépítésén, sok időt tölt azáltal, hogy triviális döntéseket hoz az adatbázis, a mappaszerkezet, az útvonaltervezés stb. Vonatkozásában, amelyek ellentmondásosnak bizonyulhatnak. A lombik akkor működik legjobban, ha egy stabil, komoly, közepes és nagy méretű projekten vagy, különösen a REST API-k mellett..

Üveg

Ha úgy gondolta, hogy a Flask megközelítése nem elég minimális, és még mindig nagyobb ellenőrzést szeretne, köszönjön Üveg.

A palack még jobban kihúzódik, egészen addig a pontig, ahol az egyetlen függőség a Python szabványos könyvtára. Ez azt jelenti, hogy ezt nem kell pip-re telepíteni, vagy azt nem kell telepíteni, bár valószínűleg sokáig kellett volna. A Bottle emiatt néz ki néhány ember számára:

  • Egy fájl telepítése. Igen, a teljes alkalmazás egyetlen „.py” fájlban él.
  • Nincs külső függőség. Ha telepítette a megfelelő Python verziót, akkor jó indulnod.
  • Szállítja a sablonmotorját, amelyet kicserélhetünk Jinja2, Mako vagy Cheetah segítségével.
  • Űrlapok, fejlécek, sütik és fájlfeltöltések támogatása.
  • Beépített webszerver, amely könnyen cserélhető.

A palack az Ön számára?

Ha valóban kicsi alkalmazást készít (mondjuk kevesebb, mint 500 sornyi kódot), különleges követelmények nélkül, akkor a Palacknak ​​sok értelme lehet. Ez egy teljes non-értelmetlen megközelítés a webes alkalmazások készítéséhez, de a gyakorlatban azt tapasztalhatja, hogy jobban akadályozzák, mint a Bottle. Ennek oka az, hogy a való világ mindig változik, és még mielőtt megismerné. Az új követelmények a fejedre kerülnek. Ezen a ponton mindent egy fájlba helyezve fárasztó munka.

Továbbá, ha úgy gondolja, hogy a Palack és a Lombik majdnem hasonlóak, igaza van. Javaslatai összevonása a kettő 2012-re nyúlik vissza, és még Armin, a Flask alkotója is egyetért ezzel. Marcel, a Bottle alkotója azonban az egy dosszié megközelítése miatt szigorú ideológiai megkülönböztetést tart fenn, és ragaszkodik ahhoz, hogy a kettő külön maradjon.

zope

zope bonyolult megmagyarázni, de megpróbálom. Igen, ez egy webes keret, amelyet nagy vagy kicsi alkalmazások készítéséhez lehet használni, de ez még nem minden. A Zope inkább egy olyan platform, amely olyan eszközökből áll (beleértve a webes kereteket is), amelyeket a Zope filozófiája alapján hoztak létre és a Zope Corporation karbantartott..

A Zope számos érdekes összetevővel és funkcióval rendelkezik, amelyek alkalmasak vállalati alkalmazások fejlesztésére:

  • Komponens regisztráló és felfedező architektúra egy nagy alkalmazás konfigurálásához.
  • ZODB – (az egyetlen) objektum-adatbázis a Python számára, az objektumok natív tárolására.
  • A tartalomkezelő rendszerek teljes körű kerete és szabványai
  • Webes alkalmazási keretrendszer – a kanonikusat még mindig Zope-nak hívják, bár több új keretrendszert (például Grok-t) építettek rá.
  • Szigorú szabványok a szoftverfejlesztéshez, kiadáshoz és karbantartáshoz.

Zope az Ön számára?

Ha nagyon strukturált környezetet keres igazán nagy alkalmazások készítéséhez, akkor a Zope jó. Ez azt is jelenti, hogy a problémák méltányos részét is meg fogja kezdeni. Amíg a Zope tovább fejlődik, a közösség valóban kicsi, olyan mértékben, hogy sok Python-fejlesztő még csak nem is hallott róla. Nehéz megtalálni az oktatóanyagokat és a kiterjedt dokumentációt, ezért készülj fel arra, hogy sokat ásson (bár a közösség nagyon hasznos!). Ezenkívül a Python-fejlesztők, akikkel találkozol, nem akarják megtanulni a Zope-t, és „meghígítják” készségeiket.

Turbogears

Turbogears egy rendkívül rugalmas keret, amelynek valóban összetételű architektúrája van. Ez egy olyan keret, amely megfelel az Ön igényeinek, és felhasználhatja egy fájl létrehozására vagy több bérleti díj létrehozására..

A TurboGears rendelkezik néhány elegáns tulajdonsággal, amelyek közül néhány nem létezik a népszerű keretekben (például Django), vagy nehéz építeni:

  • Több adatbázis első osztályú támogatása
  • Több adatbázis tranzakciók
  • Nagyon moduláris – kezdje el egyetlen fájllal, és méretezze el a kívánt méretet
  • Erőteljes ORM (SQLAlchemy, érett és képes, mint a Django ORM)
  • Dugaszolható architektúra a WSGI specifikáció alapján
  • Beépített támogatás az adatbázis-shardinghoz
  • Funkció-vezérelt felület, szemben a mély, merev, objektumorientált hierarchiákkal.

A TurboGears az Ön számára?

Ha boldogan szeretne fejlődni, és tesztelt, érett és robusztus keretet szeretne, kivéve a „félelmetes, következő generáció” médiazajtól, és mindezt, a TurboGears remekül használható. A közösség nagy tiszteletben tartja, teljes és átfogó dokumentációval rendelkezik. Persze, a TurboGears nem vélekedett, ami azt jelenti, hogy a kezdeti beállítási és konfigurációs idő több is lehet, de ez ideális keret a vállalati alkalmazások fejlesztéséhez.

Web2py

Web2py Hobbi projektként indult és 2007-ben jelent meg. Célja, hogy a webfejlesztést mindenki számára könnyűvé és hozzáférhetővé tegye.

Ennek eredményeként a Web2py a nulla-függőségi megközelítést a szélsőséges helyzetbe hozza – nincs követelménye, nincs telepítése, és tartalmaz egy teljes funkcionalitású web-alapú szerkesztőt a fejlesztéshez, az adatbáziskezeléshez, valamint a telepítéshez.

Majdnem úgy gondolhatja rá, mint az Android Studio, amely inkább egy teljes környezet, nem csupán keret. Néhány szép szolgáltatás, amely a Web2py-nek rendelkezik:

  • Gyakorlatilag nincs tanulási görbe.
  • Minimális mag (csak 12 objektum), amely akár memorizálható is!
  • Tiszta-Python sablon
  • Védelem az XSS, a CSRF és más támadások ellen
  • Kellemes és következetes API

A Web2py az Ön számára?

A Web2py stabil és szórakoztató keret, de nehéz azt ajánlani más lehetőségekkel, például Django, Flask stb. Ellen. Alig van munka, és az egység tesztelési története sem nagyszerű. Ennek ellenére élvezheti a kód API-t és a keret által nyújtott általános élményt, különösen, ha REST API-kat épít.

Cherrypy

Cherrypy egy másik mikrokeret, amelynek célja az alapvető keretfunkciók biztosítása és az út gyors megszabadulása.

Bár összehasonlítható más mikrokeretekkel, mint például a Flask, a CherryPy néhány megkülönböztetéssel büszkélkedhet:

  • Beépített többszálú szervert tartalmaz (valami, ami a Flask kívánságlistáján marad)
  • Az (egyetlen) webszerver több alkalmazást is képes fogadni!
  • Az alkalmazást szolgálja WSGI alkalmazásként (interfészhez más WSGI alkalmazásokkal) vagy egyszerű HTTP szerverként (amely jobban teljesít)
  • Első osztályú támogatás a profilozáshoz és az egység teszteléséhez
  • Fut a PyPy-n (az igazi teljesítményű drogosok számára), a Jythonon és akár az Android-on is

A CherryPy mindezt megteszi, majd a szokásos módon, amire számíthat egy webes keretrendszerből.

A CherryPy az Ön számára?

Ha többnyire RESTful szolgáltatásokat épít, a CherryPy sokkal komolyabb versenyző, mint a Flask. Ez egy évtizedes keret, amely szépen érett, és mind kis, mind nagy alkalmazásokhoz egyaránt alkalmas.

Sanic

A Node növekedése és annak aszinkron programozási modellje sok közösséget hátramagatta, beleértve a Python-ot is. Erre reagálva aszinkron webes keretek jelentek meg a radaron, Sanic az egyikük.

A Sanic-t nagymértékben inspirálta a Flask, olyan mértékben, hogy kölcsönözte az útvonaldekorátorokat, a tervrajzokat és más alapvető horogvonal- és elsüllyesztőket. És nem szégyellik beismerni. Amit a Sanic az asztalhoz hoz, ha Ön Flask rajongó vagy, az valóban nem blokkolja az I / O-t, hogy megfeleljen a Node alkalmazás teljesítményszintjének. Más szavakkal, a Sanic Flask async / támogatást vár!

A CherryPy-hez képest a Sanic hihetetlen teljesítménybeli előnnyel rendelkezik (gondoljon csak arra, hogyan viselkedne a Flask ellen!). Nézze meg a következő teszteket, amelyeket a DataWeave:

Mint láthatja, ha a párhuzamos számok másodpercenként meghaladják az 50 értéket, a CherryPy gyakorlatilag megfojt, és magas hibaarányt eredményez..

A Sanic az Ön számára?

Noha a Sanic teljesítményjellemzői mindent kivonnak a vízből, talán nem a legjobb választás a következő projekthez. Ennek fő oka az aszinkron könyvtárak hiánya. A meglévő Python eszközök és könyvtárak nagy részét az egyszálú CPython verzióra írták, anélkül, hogy előre kellett volna gondolni a nagy egyidejűségre vagy az aszinkron műveletekre. Ha például a kedvenc ORM nem támogatja az aszinkron műveleteket, akkor a Sanic használatának lényege vereséget szenved.

Ezen érettségi és rendelkezésre állási okok miatt a Python-ban már nem vizsgálunk több aszinkron keretet.

Masonite

Egy ideje átláttam ezt a keretet, és azt gondoltam, hogy ez egy lépés a helyes irányba. Azóta megjelent a 2.0 verzió, és úgy érzem, hogy végre eljött az ideje, hogy adjunk Masonite némi szerelem.

Egyszerűen fogalmazva: a Masonite a Laravel Python verziója (egy híres PHP keretrendszer, arra az esetre, ha nem tudná). Miért számít ez? Nem számít, mert a Laravel a Ruby on Rails alapelvein épült, és ez a két keret együttesen lehetővé teszi a nem Ruby fejlesztők számára a „Rails Way” megtapasztalását.

A Laravel (és bizonyos mértékben a Rails) fejlesztői otthon érezhetik magukat, és szó szerint nincs idő alatt üzembe helyezni. Amikor kipróbáltam a Masonite-t (és két-két kérdést is benyújtottam, beleértve egy hibát!), Pontosan nulla gondolkodású REST API-kat tudtam készíteni, mert a Laravel izommemória mindent megtett.

Az elemekhez tartozó, teljes kötegből álló keretként a Masonite számos érdekes dolgot hoz az asztalra:

  • Aktív rekordstílusú ORM
  • Adatbázis-migrációk (amelyeket a Djangótól eltérően a fejlesztőnek kell létrehoznia)
  • Erőteljes IoC tartály a függőségi injekcióhoz
  • Saját CLI (úgynevezett „kézműves”) az állványozási és futási feladatok elvégzéséhez
  • Első osztályú támogatás az egység teszteléséhez

A Masonite legnagyobb „riválisa” a Django, mivel a közösség mindent megtesz annak érdekében, hogy a keretet olyan könnyű, kellemes és legközelebbi nagyszerű termékként forgalmazza. Az idő megmutatja, hogy meghaladja-e a Djangot, ha időben megkérdezi, van-e tisztességes lövés, de a kettőt összehasonlító vitaért lásd: itt és itt.

A Masonite az Ön számára?

A Masonite még mindig csecsemő, összehasonlítva a Django-val, tehát a Django felett nem ajánlható. Ez azt mondta: ha a Rails (vagy a Laravel) módja van a dolgok elvégzésének, akkor értékelné, amit a Masonite kínálhat. Ideális prototípusok gyors felépítéséhez, amelyek mindent előre konfigurálnak és könnyen átkapcsolhatók.

Következtetés

Nem hiányzik a Python webes keretrendszere, nagy és kicsi. Bár egy kis projekthez nagyon sok mindent felvehet, a vállalati alkalmazás olyan követelményekkel rendelkezik, hogy ezeknek a kereteknek nem sok képesek teljesíteni. Ha tőlem kérdezel, vállalkozásfejlesztés céljából a Django (bizonyos mértékig), a Zope és a TurboGears jut eszembe. És még ezek között is hajlamosak vagyok a TurboGears felé.

Ennek ellenére minden építész, aki megéri a sóját, felvetheti egy mikrokeretet és kidolgozza építészetét. És ez nagyjából történik a gyakorlatban, ami magyarázza a Flask és hasonló ötletek sikerét.

Ha újonc vagy, akkor ez az online tanfolyam hasznos lenne megtanulni a Python-t.

CÍMKÉK:

  • 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