9 najlepších Pythonových rámcov pre vytváranie aplikácií pre malé podniky

Python je zábavná hračka a desivý plameňomet. To isté platí pre to, čo môžete robiť s Pythonom.


Python milujú fandovia, vedci a architekti.

Je to sakra ľahké začať, má abstrakcie vyššieho rádu a možnosti metaprogramovania na vytváranie veľkých a komplexných systémov a má veľa knižníc, ktoré dokážu robiť čokoľvek. Iste, existujú obmedzenia, pokiaľ ide o súbežnosť a silné písanie, ale môžete ich obísť.

V tomto článku sa zameriame na niektoré z najlepších rámcov Pythonu, pokiaľ ide o vytváranie veľkých a malých webových aplikácií..

Django

Django framework odolal skúške času, kedy bola pre komunitu Python použitá webová štruktúra. Ak ste v spánku napadli vývojára Pythonu a prinútili ste ho vytvoriť si webovú aplikáciu za strelných podmienok, automaticky by oslovili Djanga tak, ako Rubyist dorazí na Rails..

A je na to dobrý dôvod. Django je, ako to hovorí slogan, „webový rámec pre perfekcionistov s termínmi.“ Je to takzvaný rámec „vrátane batérií“ (podobne ako Python je jazyk obsahujúci batérie), ktorý poskytuje všetky bežné funkcie hneď po vybalení.

Vďaka týmto funkciám Django výrazne skracuje čas vývoja:

  • Praktický a príjemný ORM s migráciami vytvorenými a aplikovanými automaticky v rámci.
  • Lešenie pre automatické generovanie admin panelu na základe vašich modelov.
  • Podpora súborov cookie, relácií, middlewaru, šablón atď.
  • Bezpečnostné prvky ako prevencia XSS, prevencia CRSF atď. Sa uplatňujú automaticky.
  • Funguje prakticky so všetkými databázami (je ľahké nájsť adaptéry, kde neexistuje oficiálna podpora)
  • Prvotriedna podpora geografických údajov a priestorových dopytov však GeoDjango

A oveľa, oveľa viac. Stačí povedať, že Django je plnohodnotný a priateľský webový rámec.

Je Django pre vás?

Samozrejme áno.

Django má vynikajúci zmysel pre všetky prípady použitia, či už ide o rýchle prototypovanie alebo plánovanie podnikovej aplikácie. Jedinou hrubou hranou, s ktorou sa stretnete, je štruktúra rámca. Keďže Django sa ohýba smerom dozadu, aby pre vás vývoj bol rýchly a ľahký, ukladá vývojárovi jeho štruktúru (koncept nazývaný „konvencia o konfigurácii“), s ktorou nemusíte súhlasiť. Napríklad, ak chcete nahradiť Django ORM niečím iným (povedzme, SQL Alchemy), buďte pripravení na prekvapenie.

Zaujímate sa o to, aby ste sa stali Djangom a Pythonom? – Vyskúšajte to fantastický online kurz.

banka

Zatiaľ čo Django zaberá takmer všetku dušu pri vývoji webových aplikácií v Pythone, banka je silný uchádzač.

Na rozdiel od Djanga je Flask „mikroštruktúra“, čo znamená, že sa zameriava na to, aby sa pár, holých minimálnych vecí dalo do poriadku, a zvyšok vám zostane. Tento „zvyšok je len na vás“ môže byť zdrojom frustrácie alebo potešenia v závislosti od vašich cieľov. Pre tých, ktorí vedia, čo robia a chcú milovať svoje webové aplikácie výberom komponentov podľa vlastného výberu, je Flask dar z nebies.

Banka ponúka nasledujúce vlastnosti:

  • Smerovanie, templing, správa relácií a ďalšie užitočné funkcie.
  • Plná podpora pre testovanie jednotiek
  • Minimálna pripojiteľná architektúra
  • Prvotriedna podpora REST
  • Podpora Blueprints, jedinečná architektúra Flasku pre architektúru malých webových aplikácií
  • Vyberte si balíčky pre ORM, migrácie atď.
  • Flexibilná aplikačná štruktúra – súbory uložte tam, kde sú pre vás najvhodnejšie
  • Statické zobrazovanie súborov
  • Kompatibilné s WGSI

Je banka pre vás?

Ako už bolo povedané, Flask je minimálny webový rámec, so všetkým, čo je rozdelené na jednotlivé komponenty, ktoré môžete vymeniť. Ak sa chystáte postaviť prototyp, budete tráviť veľa času triviálnymi rozhodnutiami o databáze, štruktúre priečinkov, smerovaní atď., Ktoré môžu byť kontraproduktívne. Banka pracuje najlepšie, keď sa chystáte na stabilný a seriózny projekt stredného až veľkého rozsahu, najmä rozhraní REST API..

fľaša

Ak ste si mysleli, že Flaskov prístup nebol dosť minimálny a že by ste stále chceli mať väčšiu kontrolu, pozdravte ho fľaša.

Fľaša sa oddeľuje ešte viac, a to až do bodu, keď je jedinou závislosťou štandardná knižnica Python. To znamená, že žiadna inštalácia pip alebo inštalácia pip, ktoré by ste si pravdepodobne mali už dlho vyskúšať. Tu je dôvod, prečo sa fľaša vyniká pre niektorých ľudí:

  • Nasadenie jedného súboru. Áno, celá vaša aplikácia žije v jednom súbore „.py“.
  • Žiadne vonkajšie závislosti. Ak máte nainštalovanú správnu verziu Pythonu, je dobré ísť.
  • Dodáva svoj templingový motor, ktorý je možné vymeniť za Jinja2, Mako alebo gepard.
  • Podpora odovzdávania formulárov, hlavičiek, súborov cookie a súborov.
  • Vstavaný webový server, ktorý možno ľahko vymeniť.

Je pre vás fľaša?

Ak vyrábate skutočne malú aplikáciu (povedzme menej ako 500 riadkov kódu) bez zvláštnych požiadaviek, môže vám Bottle dať zmysel. Ide o úplný nezmyselný prístup k vytváraniu webových aplikácií, ale v praxi zistíte, že vám viac bráni, ako pomáha Bottle. Dôvod je ten, že skutočný svet sa vždy mení a skôr, ako ho poznáte. Na vašu hlavu padnú nové požiadavky. Vtedy by sa všetko v jednom súbore stalo fuškou.

Ak si tiež myslíte, že fľaša a fľaša sú takmer rovnaké, máte pravdu. Návrhy splynutie dva sa datujú do roku 2012 a dokonca aj Armin, tvorca banky, s tým súhlasí. Marcel, tvorca fľaše, však zachováva striktné ideologické rozlíšenie z dôvodu jednotného prístupu a trvá na tom, aby títo dvaja zostali oddelení..

Zope

Zope je ťažké vysvetliť, ale pokúsim sa. Áno, je to webový rámec, ktorý sa dá použiť na vytváranie veľkých alebo malých aplikácií, ale to nie je všetko. Zope je viac platformou, ktorá pozostáva z nástrojov (vrátane webových rámcov) vytvorených na základe filozofie Zope a udržiavaných spoločnosťou Zope Corporation..

Zope má niekoľko zaujímavých komponentov a funkcií vhodných pre vývoj podnikových aplikácií:

  • Architektúra registrácie a zisťovania komponentov na konfiguráciu veľkej aplikácie.
  • ZODB – (jediná) databáza objektov pre Python na prirodzené ukladanie objektov.
  • Plnohodnotný rámec a normy pre systémy na správu obsahu
  • Súbor rámcov webových aplikácií – kanonický sa stále nazýva Zope, aj keď na ňom bolo postavených niekoľko nových rámcov (ako Grok)..
  • Prísne normy pre vývoj, vydanie a údržbu softvéru.

Je pre vás Zope?

Ak sledujete vysoko štruktúrované prostredie na vytváranie skutočne veľkých aplikácií, Zope je dobrá. To znamená, že narazíte aj na svoj spravodlivý podiel na problémoch. Zatiaľ čo sa Zope neustále vyvíja, komunita je skutočne malá, do tej miery, o ktorej veľa vývojárov Pythonu o nej nepočulo. Nájsť návody a rozsiahlu dokumentáciu je ťažké, takže buďte pripravení urobiť veľa kopania (hoci komunita je skutočne nápomocná!). Vývojári Pythonu, s ktorými sa stretnete, sa možno tiež nebudú chcieť naučiť Zope a „oslabiť“ ich zručnosti.

TurboGears

TurboGears je vysoko flexibilný rámec, ktorý má skutočne zložiteľnú architektúru. Je to rámec, ktorý sa prispôsobuje vašim potrebám a môžete ho použiť na vytvorenie aplikácie s jedným súborom alebo viacnásobného prenájmu..

TurboGears má niekoľko elegantných funkcií, z ktorých niektoré nie sú prítomné v populárnych rámcoch (ako Django) alebo sa dajú ťažko zostaviť:

  • Prvotriedna podpora viacerých databáz
  • Transakcie s viacerými databázami
  • Vysoko modulárny – začnite s jedným súborom a prispôsobte ho podľa potreby
  • Výkonný ORM (SQLAlchemy, ktorý je vyspelejší a schopný ako ORM Djanga)
  • Zásuvná architektúra založená na špecifikácii WSGI
  • Vstavaná podpora pre databázový sharding
  • Funkčne riadené rozhranie na rozdiel od hlbokých, rigidných objektovo orientovaných hierarchií.

Je pre vás TurboGears?

Ak sa chcete šťastne rozvíjať a chcete vyskúšať, zrelý a robustný rámec mimo mediálneho šumu „úžasného, ​​budúceho genómu“ a všetkého toho, TurboGears sa výborne hodí. V komunite je vysoko rešpektovaný a má kompletnú a rozsiahlu dokumentáciu. Iste, TurboGears nie je presvedčený, čo znamená, že počiatočné nastavenie a čas konfigurácie môže byť viac, ale je to ideálny rámec pre vývoj podnikových aplikácií..

Web2py

Web2py začal ako hobby projekt a bol prepustený v roku 2007. Jeho cieľom je uľahčiť vývoj webových stránok a ich dostupnosť pre všetkých.

Výsledkom je, že Web2py pristupuje do extrému s nulovou závislosťou – nemá žiadne požiadavky, nič na inštaláciu a zahŕňa plnohodnotný webový editor pre vývoj, správu databáz a nasadenie..

Skoro si môžete myslieť, že ide o Android Studio, ktoré je viac kompletným prostredím ako iba rámcom. Niektoré pekné funkcie, ktoré má Web2py, sú:

  • Prakticky žiadna krivka učenia.
  • Minimálne jadro (iba 12 objektov), ​​ktoré si možno dokonca zapamätať!
  • Šablóna Pure-Python
  • Ochrana pred XSS, CSRF a inými útokmi
  • Príjemné a konzistentné API

Je pre vás Web2py?

Web2py je stabilný a zábavný rámec, ale je ťažké ho odporučiť proti iným možnostiam, ako sú Django, Flask atď. Neexistujú takmer žiadne úlohy a príbeh testovania jednotiek nie je skvelý. Možno by ste si však mohli vychutnať kódové API a celkovú skúsenosť, ktorú rámec ponúka, najmä ak vytvárate REST API.

CherryPy

CherryPy je ďalšie mikroframovanie, ktorého cieľom je poskytnúť základné funkcionality rámca a rýchlo sa dostať z cesty.

Aj keď je porovnateľný s inými mikrorámami, ako je Flask, CherryPy sa môže pochváliť určitým rozlíšením:

  • Obsahuje vstavaný server s viacerými vláknami (niečo, čo zostáva na zozname želaní Flask)
  • (Jeden) webový server môže hostiť viac aplikácií!
  • Poskytujte svoju aplikáciu ako aplikáciu WSGI (na rozhranie s inými aplikáciami WSGI) alebo ako obyčajný server HTTP (ktorý dosahuje lepšiu výkonnosť)
  • Prvotriedna podpora profilovania a testovania jednotiek
  • Beží na PyPy (pre skutočné výkonné feťáky), Jython a dokonca aj na Android

CherryPy to všetko robí a potom zvyčajné, aké by ste očakávali od webového rámca.

Je pre vás CherryPy?

Ak prevažne budujete RESTful služby, spoločnosť CherryPy je oveľa vážnejším uchádzačom ako banka. Je to desaťročná štruktúra, ktorá pekne dozrela a je vhodná pre malé aj veľké aplikácie.

sanice

Vzostup uzla a jeho asynchrónneho programovacieho modelu spôsobil, že sa mnoho komunít cítilo pozadu, vrátane Pythonu. V odozve sa na radare objavila nával asynchrónnych webových rámcov, sanice byť jedným z nich.

Sanic je silne inšpirovaný Flaskom do tej miery, že si požičal dekoratérov trás, plány a ďalšie základné háčiky a platiny. A nehanbí sa to priznať. To, čo Sanic prináša na stôl, ak ste fanúšikom banky, je skutočným neblokujúcim vstupom / výstupom na splnenie úrovní výkonnosti aplikácie Node. Inými slovami, Sanic je Flask s asynchrónnou / očakávanou podporou!

V porovnaní s CherryPy má Sanic neuveriteľnú výkonnostnú výhodu (len pomyslite na to, ako by sa to hodilo proti banke!). Pozrite sa na nasledujúce výsledky testované spoločnosťou DataWeave:

Ako vidíte, akonáhle súbežné čísla začnú presahovať 50 za sekundu, CherryPy prakticky tlmia a zvyšujú vysokú mieru zlyhania.

Je Sanic pre vás?

Zatiaľ čo výkonnostné charakteristiky spoločnosti Sanic vyfúkajú všetko ostatné z vody, nemusí to byť najlepšia voľba pre váš ďalší projekt. Hlavným dôvodom je nedostatok asynchrónnych knižníc. Väčšina existujúcich nástrojov a knižníc Pythonu bola napísaná pre jednovláknovú verziu CPythonu bez toho, aby sa predvídalo vysoké súbežné alebo asynchrónne operácie. Ak napríklad váš obľúbený ORM nepodporuje asynchrónne operácie, celý bod používania Sanicu bude porazený.

Z týchto dôvodov zrelosti a dostupnosti nebudeme v Pythone skúmať žiadne asynchrónne rámce.

Masonite

S týmto rámcom som sa stretol pred chvíľou a myslel som si, že to bol krok správnym smerom. Odvtedy bola vydaná verzia 2.0 a mám pocit, že konečne prišiel čas Masonite nejaká láska.

Jednoducho povedané, Masonite je Pythonova verzia Laravelu (slávny rámec PHP pre prípad, že ste to nevedeli). Prečo na tom záleží? Záleží na tom, pretože Laravel bol postavený na princípoch Ruby on Rails a tieto dva rámce dokážu nevrhovským vývojárom umožniť zažiť „Rails Way“ pri robení vecí.

Vývojári spoločnosti Laravel (a do istej miery aj spoločnosti Rails) sa budú cítiť ako doma a budú doslova v prevádzke. Keď som vyskúšal Masonite (a odoslal som problém alebo dva, vrátane chyby!), Bol som schopný zostaviť REST API s nulovým myslením, pretože moja Laravelova svalová pamäť robila všetko.

Masonite, ako súčasť plného zásobníka s batériami, prináša na stôl niekoľko zaujímavých vecí:

  • Štýl aktívneho záznamu ORM
  • Migrácia databázy (ktorú na rozdiel od Djanga musí vytvoriť vývojár)
  • Výkonný kontajner IoC na vstrekovanie závislosti
  • Vlastné CLI (nazývané „remeslo“) na lešenie a vykonávanie úloh
  • Prvotriedna podpora pre testovanie jednotiek

Najväčším „rivalom“ pre Masonite je Django, pretože komunita robí všetko pre to, aby bol tento rámec na trhu taký ľahký, príjemný a ďalšia veľká vec. Či to predbehne Djanga, je niečo, čo povie čas (ak sa ma pýtate, má slušnú ranu), ale pre diskusiu o porovnaní týchto dvoch, pozri tu a tu.

Je pre vás Masonite?

Masonite je stále dieťa v porovnaní s Djangom, takže neexistuje žiadny spôsob, ako ho odporučiť nad Djangom. To znamená, že ak sa chystáte robiť veci Rails (alebo Laravel), oceníte, čo Masonite môže ponúknuť. Je ideálny pre rýchle vytváranie prototypov, ktoré vyžadujú všetko vopred nakonfigurované a ľahko prepínateľné.

záver

Tam nie je nedostatok webových rámcov Pythonu, veľkých aj malých. Aj keď pre malý projekt si môžete vyzdvihnúť takmer čokoľvek, podniková aplikácia vyžaduje, aby mnohé z týchto rámcov nemohli splniť. Ak sa ma pýtate, na rozvoj podnikania prichádzajú na myseľ Django (do istej miery), Zope a TurboGears. A dokonca aj medzi nimi som naklonený k TurboGears.

To znamená, že každý architekt, ktorý stojí za jeho soľ, si môže vyzdvihnúť mikro snímky a rozšíriť svoju architektúru. A to sa v podstate deje v praxi, čo vysvetľuje úspech banky a podobné nápady.

Ak ste nováčik, potom tento online kurz bolo by užitočné naučiť sa Python.

Tagy:

  • krajta

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